Java基础学习笔记_多态

1、Java中实现多态的步骤

  • 要有继承(实现)关系。
  • 要有方法重写,不然多态就没有意义。
  • 父类引用指向子类对象(is a 的关系)。

2、多态中成员方法的调用

编译看左,运行看右。

  • 编译看左:是指编译时看左边的类型有没有这个成员方法。
  • 运行看右:是指运行时具体用到的是右边类中的该成员方法。

3、多态中成员变量的调用

多态中,成员变量不涉及重写。

编译看左,运行看左。

  • 编译看左:意思是在编译期间会看左边的类型有没有这个成员变量,没有就报错,有就不报错。
  • 运行看左:意思是在运行期间使用的是左边的类型中的这个成员变量。

4、多态的好处

  • 可维护性:基于继承关系,只需要维护父类代码,提高了代码的复用性,大大降低了维护程序的工作量。
  • 可扩展性:把不同的子类对象都当作父类看待,屏蔽了不同子类对象间的差异,做出通用的代码,以适应不同的需求,实现了向后兼容。

5、多态的弊端

不能使用子类特有成员。

当需要使用子类特有功能时,需要进行类型转换

  • 向上转型(自动类型转换):子类型转换成父类型。

Animal animal = new Dog();

  • 向下转型(强制类型转换):父类型转换成子类型。

Dog dog = (Dog)animal;

类型转换的注意事项:

  • 只能在继承层次内进行转换,否则就会报错(ClassCastException)。
  • 将父类对象转换成子类之前,使用instanceof进行检查。

A instanceof B,判断A是不是B类型的实例对象。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值