Java继承与多态
Java继承与多态
调用同名static方法
class A extends B
A a = new A();
a.test(); //A
B b = new A();
b.test(); //B
这里存在两个点:
- 父类引用可以指向子类对象
- 调用同名static方法时,只跟定义的类型有关,与实际引用的类无关
方法重写
-
重写的是非static方法
-
@override
-
IDEA快捷键Alt+Insert(同时也可用于生成构造器)
-
IDEA中方法名左边会有"o"加上箭头,表示重写
-
修饰符范围可以扩大,不能缩小
-
抛出的异常范围可以缩小,不能扩大
-
调用重写的方法与实际引用的类相同
多态
-
父类引用指向子类
-
对象能调用的方法取决于引用类型,而非实际对象类型
-
子类重写了父类的方法,执行子类的方法,即使是父类引用
-
多态是方法的多态,属性没有多态
instanceof
使用方法
object instanceof class
返回布尔值,判断对象是否是某个类的实例
- 判断的是实际引用的对象的类型,即使是父类引用子类对象,也算作属于子类的实例
强制类型转换
使用场景:
Father son = new Son();
((Son)son).sonMethod();
父类引用指向子类,可以通过强制类型转换,调用子类方法

浙公网安备 33010602011771号