1、接口:比抽象类还抽象的类,用于处理继承单一的局限性
格式:
interface 接口名{
}
注意:接口里的方法全是抽象方法,接口和类的关系是实现(implements)
2、接口的成员特点:
(1)只能有抽象方法;
(2)只能有常量;
(3)默认使用public&abstract修饰方法;
(4)只能使用public&abstract修饰方法;
(5)默认使用public static final来修饰成员变量;
建议:手动添加默认修饰符
注意:
(1)接口不能创建对象(不能实例化);
(2)类和接口的关系是实现关系,多层实现,一个类实现一个接口必须实现它所有的方法;
(3)类与类是继承关系,单一继承,多层继承;
(4)接口与接口的关系是继承关系,多层继承
3、接口的优点:
(1)一个类可以实现多个接口,打破了继承的局限性;
(2)对外提供规则(USB接口);
(3)降低了程序的耦合性(可以实现模块化开发,定义好规则,每个人实现自己的模块,提高了开发的效率)
4、接口和抽象类:
(1)共性:不断地抽取出抽象的概念;
(2)区别:
A、与类的关系:
a、类和接口的关系是实现关系,而且是多实现,一个类可以实现多个接口;
b、类与抽象类是继承关系,Java中的继承是单一继承,多层继承
B、与成员的关系:
a、成员变量:抽象类可以有成员变量,也可以有常量;接口只能有常量
b、成员方法:抽象类可以有抽象方法,也可以有非抽象方法;接口只能有抽象方法,而且方法有默认修饰符 public abstract
c、构造方法:抽象类有构造方法;接口没有构造方法
5、匿名对象:没有名字、没有变量引用的对象
应用场景:
(1)当方法只调用一次的时候可以使用匿名对象;
(2)可以当作参数进行传递,但是无法在传参之前做其他的事情
注意:匿名对象可以调用成员变量并赋值,但是赋值并没有意义
6、final:修饰符,用于修饰类、成员方法和成员变量
(1)final所修饰的类:不能被继承,不能有子类;
(2)final所修饰的方法:不能被重写;
(3)final所修饰的变量:不可以被修改,是常量(字面值常量:1,2,3;自定义常量:一旦初始化则不可改变)
注意:自定义常量必须初始化,可以选择显示初始化或者构造初始化
7、多态的前提:
(1)子父类的继承关系;
(2)方法的重写;(变量没有重写的概念)
(3)父类引用指向子类对象
注意:动态绑定:运行期间调用的方法,是根据其具体的类型
8、多态的成员特点:
(1)成员变量:编译时看的是左边,运行时看到是左边;
(2)成员方法:编译时看的是左边,运行时看到是右边;
(3)静态方法:编译时看的是左边,运行时看到是左边;
9、多态中的向上转型和向下转型:
引用类型之间的转换:
a、向上转型:由小到大(子类型转换成父类型)
b、向下转型:由大到小
10、多态的优缺点:
(1)优点:可以提高可维护性(多态前提所保证的),提高代码的可扩展性;
(2)缺点:无法直接访问子类特有的成员