Java继承与多态

Java继承与多态

调用同名static方法

class A extends B

A a = new A();
a.test(); //A
B b = new A();
b.test(); //B

这里存在两个点:

  1. 父类引用可以指向子类对象
  2. 调用同名static方法时,只跟定义的类型有关,与实际引用的类无关

方法重写

  • 重写的是非static方法

  • @override

  • IDEA快捷键Alt+Insert(同时也可用于生成构造器)

  • IDEA中方法名左边会有"o"加上箭头,表示重写

  • 修饰符范围可以扩大,不能缩小

  • 抛出的异常范围可以缩小,不能扩大

  • 调用重写的方法与实际引用的类相同

多态

  • 父类引用指向子类

  • 对象能调用的方法取决于引用类型,而非实际对象类型

  • 子类重写了父类的方法,执行子类的方法,即使是父类引用

  • 多态是方法的多态,属性没有多态

instanceof

使用方法

object instanceof class

返回布尔值,判断对象是否是某个类的实例

  • 判断的是实际引用的对象的类型,即使是父类引用子类对象,也算作属于子类的实例

强制类型转换

使用场景:

Father son = new Son();
((Son)son).sonMethod();

父类引用指向子类,可以通过强制类型转换,调用子类方法

posted @ 2021-01-15 22:25  一天到晚睡觉的鱼  阅读(108)  评论(0)    收藏  举报