黑马程序员-JAVA SE入门(接口、多态、内部类)
来源:互联网 发布:中国式父母 知乎 编辑:程序博客网 时间:2024/05/17 04:34
---------------------- <a target="blank">ASP.Net+Android+IO开发S</a>、<a target="blank">.Net培训</a>、期待与您交流! ----------------------
接口
格式:interface 接口名 { }
接口中的成员修饰符是固定的。
成员常量:public static final
接口里面定义变量是全局常量,而且上面三个关键字都可以省略。
成员函数:public abstract
接口里面定义的方法都是抽象的,而且上面的两个关键字也是可以省略的。
发现接口中的成员都是public的。
接口的出现将“多继承”通过另一种形式体现出来,即“多实现”。
接口的特点:接口是对外暴露的规则。接口是程序的功能扩展。接口的出现降低耦合性。接口可以用来多实现。类与接口之间是实现关系,而且类可以继承一个类的同时实现多个接口。接口与接口之间可以有继承关系。如:public interface I { method1(){}; } class A implements I { method1() { somefunction...... } }
接口于抽象类的区别:共 性:都是不断抽取出来的抽象的概念区别 1:抽象类体现继承关系,一个类只能单继承接口体现实现关系,一个类可以多实现区别 2:抽象类是继承,是 "is a "关系接口是实现,是 "like a"关系区别 3:抽象类中可以定义非抽象方法,供子类直接使用接口的方法都是抽象,接口中的成员都有固定修饰符
多态:
程序中的提现:父类或者接口的引用指向或者接收自己的子类对象。好处和作用:多态的存在提高了程序的扩展性和后期可维护性多态三个必要条件:父类引用指向子类对象要有覆盖操作,也就是重写需要存在继承或者实现关系 1、多态的体现:父类的引用指向了自己的子类对象。父类的引用也可以接收自己的子类对象。 2、多态的前提:必须是类与类之间有关系。要么继承,要么实现。通常还有一个前提:存在覆盖。 3、多态的好处:多态的出现大大的提高程序的扩展性。 4、多态的弊端:提高了扩展性,但是只能使用父类的引用访问父类中的成员。
在多态中成员函数的特点:在编译时期:参阅引用型变量所属的类中是否有调用的方法。如果有,编译通过,如果没有编译失败。 在运行时期:参阅对象所属的类中是否有调用的方法。 简单总结就是:成员函数在多态调用时,编译看左边,运行看右边。 在多态中,成员变量的特点:无论编译和运行,都参考左边(引用型变量所属的类)。 在多态中,静态成员函数的特点:无论编译和运行,都参考做左边。
内部类:
将一个类定义在另一个类的里面,对里面那个类就称为内部类(内置类,嵌套类)。访问特点:内部类可以直接访问外部类中的成员,包括私有成员。是因为内部类中持有了一个外部类的引用,格式 外部类名.this。而外部类要访问内部类中的成员必须要建立内部类的对象。 访问格式:1、当内部类定义在外部类的成员位置上,而且非私有,可以在外部其他类中。可以直接建立内部类对象。格式: 外部类名.内部类名 变量名 = 外部类对象.内部类对象; Outer.Inner in = new Outer().new Inner();2、当内部类在成员位置上,就可以被成员修饰符所修饰。 如:private:将内部类在外部类中进行封装。static:内部类就具备static的特性。 当内部类被static修饰后,只能直接访问外部类中的static成员。出现了访问局限。
在外部其他类中,如何直接访问static内部类的非静态成员呢? new Outer.Inner().function();在外部其他类中,如何直接访问static内部类的静态成员呢? uter.Inner.function();注意: 当内部类中定义了静态成员,该内部类必须是static的。 当外部类中的静态方法访问内部类时,内部类也必须是static的。 当描述事物时,事物的内部还有事物,该事物用内部类来描述。因为内部事务在使用外部事物的内容。
如果一个类继承内部类,则创建该类的对象时需提供一个外部类的对象作为构造方法的参数。如:
class Car{
class Wheel{ }
}
class SuperWheel extends Car.Wheel{
SuperWheel(Car car){
car.super();
}
public static void main(String [] args){
Car car = new Car();
SuperWheel wl = new SuperWheel(car);
}
}
匿名内部类:
1、匿名内部类其实就是内部类的简写格式。 2、定义匿名内部类的前提:内部类必须是继承一个类或者实现接口。 3、匿名内部类的格式: new 父类或者接口(){定义子类的内容} 4、其实匿名内部类就是一个匿名子类对象。而且这个对象有点胖。可以理解为带内容的对象。 5、匿名内部类中定义的方法最好不要超过3个。
如:
class Constant{
int n;
Constant(int i){
n=i;
}
}
public class Thing{
Constant getConstant(){
return new Constant(5){
int n=5;
};
}
public static void main(String[] args){
Thing th=new Thing();
System.out.println(th.getConstant().n);;
}
}
---------------------- <a target="blank">ASP.Net+Android+IOS开发</a>、<a target="blank">.Net培训</a>、期待与您交流! ----------------------
接口是对外暴露的规则。
接口是程序的功能扩展。
接口的出现降低耦合性。
接口可以用来多实现。
类与接口之间是实现关系,而且类可以继承一个类的同时实现多个接口。
接口与接口之间可以有继承关系。
如:
public interface I { method1(){}; } class A implements I { method1() { somefunction...... } }
接口于抽象类的区别:
共 性:都是不断抽取出来的抽象的概念区别 1:
抽象类体现继承关系,一个类只能单继承
接口体现实现关系,一个类可以多实现
区别 2:抽象类是继承,是 "is a "关系
接口是实现,是 "like a"关系
区别 3:抽象类中可以定义非抽象方法,供子类直接使用
接口的方法都是抽象,接口中的成员都有固定修饰符
多态:
程序中的提现:父类或者接口的引用指向或者接收自己的子类对象。
好处和作用:多态的存在提高了程序的扩展性和后期可维护性
多态三个必要条件:
父类引用指向子类对象
要有覆盖操作,也就是重写
需要存在继承或者实现关系
1、多态的体现:父类的引用指向了自己的子类对象。父类的引用也可以接收自己的子类对象。 2、多态的前提:必须是类与类之间有关系。要么继承,要么实现。通常还有一个前提:存在覆盖。 3、多态的好处:多态的出现大大的提高程序的扩展性。 4、多态的弊端:提高了扩展性,但是只能使用父类的引用访问父类中的成员。
在多态中成员函数的特点:在编译时期:参阅引用型变量所属的类中是否有调用的方法。如果有,编译通过,如果没有编译失败。 在运行时期:参阅对象所属的类中是否有调用的方法。 简单总结就是:成员函数在多态调用时,编译看左边,运行看右边。 在多态中,成员变量的特点:无论编译和运行,都参考左边(引用型变量所属的类)。 在多态中,静态成员函数的特点:无论编译和运行,都参考做左边。内部类:
将一个类定义在另一个类的里面,对里面那个类就称为内部类(内置类,嵌套类)。访问特点:内部类可以直接访问外部类中的成员,包括私有成员。是因为内部类中持有了一个外部类的引用,格式 外部类名.this。而外部类要访问内部类中的成员必须要建立内部类的对象。访问格式:1、当内部类定义在外部类的成员位置上,而且非私有,可以在外部其他类中。可以直接建立内部类对象。格式: 外部类名.内部类名 变量名 = 外部类对象.内部类对象; Outer.Inner in = new Outer().new Inner();2、当内部类在成员位置上,就可以被成员修饰符所修饰。 如:private:将内部类在外部类中进行封装。static:内部类就具备static的特性。 当内部类被static修饰后,只能直接访问外部类中的static成员。出现了访问局限。在外部其他类中,如何直接访问static内部类的非静态成员呢? new Outer.Inner().function();在外部其他类中,如何直接访问static内部类的静态成员呢? uter.Inner.function();注意: 当内部类中定义了静态成员,该内部类必须是static的。 当外部类中的静态方法访问内部类时,内部类也必须是static的。 当描述事物时,事物的内部还有事物,该事物用内部类来描述。因为内部事务在使用外部事物的内容。如果一个类继承内部类,则创建该类的对象时需提供一个外部类的对象作为构造方法的参数。如:
class Car{
class Wheel{ }
}
class SuperWheel extends Car.Wheel{
SuperWheel(Car car){
car.super();
}
public static void main(String [] args){
Car car = new Car();
SuperWheel wl = new SuperWheel(car);
}
}如:匿名内部类:
1、匿名内部类其实就是内部类的简写格式。 2、定义匿名内部类的前提:内部类必须是继承一个类或者实现接口。 3、匿名内部类的格式: new 父类或者接口(){定义子类的内容} 4、其实匿名内部类就是一个匿名子类对象。而且这个对象有点胖。可以理解为带内容的对象。 5、匿名内部类中定义的方法最好不要超过3个。class Constant{
int n;
Constant(int i){
n=i;
}
}
public class Thing{
Constant getConstant(){
return new Constant(5){
int n=5;
};
}
public static void main(String[] args){
Thing th=new Thing();
System.out.println(th.getConstant().n);;
}
}---------------------- <a target="blank">ASP.Net+Android+IOS开发</a>、<a target="blank">.Net培训</a>、期待与您交流! ----------------------
- 黑马程序员-JAVA SE入门(接口、多态、内部类)
- 黑马程序员-JAVASE入门(接口,多态,内部类)
- 黑马程序员-JAVASE入门(接口、内部类、多态)
- 黑马程序员__ 6java基础 接口 多态 内部类
- 黑马程序员-Java学习04-接口,多态,内部类,匿名内部类,Object类
- 黑马程序员——java-面向对象二(继承,多态,抽象,接口,包,内部类)
- 黑马程序员-Java的面向对象(抽象类、接口、内部类和继承、组合、多态)
- 黑马程序员-JAVA SE入门(线程)
- 黑马程序员 Java基础接口、内部类及异常
- 【黑马程序员】 java笔记——接口与内部类
- 黑马程序员-----java 抽象类、接口、内部类
- 黑马程序员——JAVA接口和内部类
- 黑马程序员--内部类、包、异常、多态(Java)
- 黑马程序员--java内部类!
- 黑马程序员--java内部类
- 黑马程序员--Java内部类
- 黑马程序员 Java 内部类
- 黑马程序员---java 内部类
- java无难事笔记(一)
- 黑马程序员_集合框架Collection
- 【压缩文件系统 加快U盘拷贝速度】
- 学习记录(Youtube videos)
- 字符串压缩排序
- 黑马程序员-JAVA SE入门(接口、多态、内部类)
- 游戏 出现0xc000007b 错误的解决方法汇总
- git快速入门
- POJ 2286/HDU 1667 The Rotation Game 搜索-IDA*+迭代加深
- 贝塞尔曲线移动轨迹
- 【Windows 8十四个常用快捷键分享】
- 黑马程序员_LinkedList
- 玩儿转C语言:系统内存模型之实模式和保护模式
- 地图编辑