1.1 接口
1.1.2 接口的成员特点
static:可以类名打点调用变量
final:该变量为常量,不能被更改
public:所有包所有类都可以访问
jdk8成员方法的改进:
默认方法:
也就是带有默认方法(方法可以有方法体)的接口,实现这个接口,不强制重写该方法
注意事项第二点错误:重写方法public不能省略 ,default可以省略
静态方法:
以直接接口名打点调用方法
jdk9私有方法:
让接口方法可以加private关键字,方法只能本接口使用
1.1.3 类和接口的关系
1.
一个类实现了一个接口,继承了一个父类,接口和父类中都有一样的方法
那么该类调用方法,执行的是父类中的逻辑,父类没有这个方法,才回去执行接口的方法
2.
如果一个接口实现了两个接口,两个接口有相同的方法,如果去调用方法的话,必须重写该方法
2.1 多态
父 f = new 子
2.1.1 多态中成员访问特点
也就是说:通过多态去构建对象,用该对象去调用成员变量,如果父类没有,直接报错
结果也是父类成员变量的值。方法同理。
2.1.1 多态的好处和弊端
一个方法如果形参是父类对象的话,那么你传递子类对象的实参也可以进行接收
并且父类中要有子类的这个方法
同理:方法返回值是父类的话,return子类也可以
如何使用子类特有功能(多态中的转型)?
其实想用子类特有功能可以直接创建子类对象:Z zi = new Z 没必要 F f = new Z
F f = new Z 就是把Z的地址值赋值给F,就是向上转型
而向下转型则是:F f = new Z 然后 Z z = (Z)f
目标类型是Dog,实际类型是Cat,所以报错了