多态:
概述:同一事物在不同时刻表现出来的不同状态(形态)。
前提条件:
1、要有继承或者实现关系。
2、要有方法重写。
3、要有父类引用或者父接口引用指向子类对象。
三种表现形式:
普通父类指向子类对象
抽象父类。。。
接口引用
成员访问特点:
非静态成员方法:编译看左边,运行看右边。
其他(成员变量,静态方法):都是编译和运行都看左边。
原因是方法有重写。
//补充的一句话:静态(static修饰的)是属于类的,可以被类名点的形式调用。 静态咱们明天详细讲。
instanceof 关键字:
格式: 对象(引用) instanceof 数据类型
作用: 判断前边的对象是否是后边的数据类型
注意事项:前边的对象和后边的数据类型要有继承或者实现关系。
引用类型转换的问题:
向上转型:
格式: 父类(父接口)引用 指向子类对象。
Person p = new Student();
向下转型:
格式:把刚才的父类(父接口)引用强转成其对应的子类类型。
Student s = (Student)p;
好处和弊端:
好处:提高代码的扩展性和可维护性。
弊端:父类引用不能直接使用子类的特有成员。
这么解决?
可以通过向下转型来解决。 |
|