java笔记之多态总结


一、多态介绍

多态:即多种状态。是指方法或对象具有多种状态。
面向对象三大特征之一。
是建立在封装和继承之上的。


二、方法的多态

方法的重写和重载可以体现多态。(注意:方法的重写和重载发生在具有继承关系的子类和父类之间)—这也说明了多态是建立在继承和封装的基础之上的。

三、对象的多态

子类和父类之间,
在new一个对象时:如Animal animal=new Dog();
(1)等号=左边是编译类型,等号=右边是运行类型。
如animal的左边是编译类型Animal类,右边是运行类型是Dog类。
(2)编译类型和运行类型可以不一致。
(3)且编译类型在定义对象时,就确定了,不能改变。
(4)运行类型可以改变。
(运行类型不同也可体现出多态,编译类型和运行类型不一致也可体现出多态。)
Animal animal=new Dog();
父类Animal做编译类型作为子类Dog的引用。

四、细节

多态注意事项和细节

1.属性没有重写之分(方法才有),属性值看编译类型。
2.instanceof比较操作符,用于判断对象的类型是否为XX类型或XX类型的子类型。
aa instanceof BB判断aa是否是BB类,或是BB类的子类。

向上转型

语法:父类类型 引用名=new 子类类型();
Animal animal=new Dog();
即父类做为子类对象的引用。
可调用父类中所有方法(按访问规则,即不能访问private等)
但不能调用子类中特有方法。

向下转型

(1)语法:子类类型 引用名=(子类类型)父类引用。
Dog dog=(Dog)animal;(此处animal必须是Dog的父类引用,才能进行下转)
(2)注意:强转的是父类的引用而不是父类的对象。
(3)父类引用必须指向该子类的对象,才能转为该子类。
(4)向下转型后可以调用该子类中的所有成员(按修饰符范围)。

多态的动态绑定机制。

1.调用方法时,方法与运行对象的地址进行绑定。
2.调用对象属性时,属性无动态绑定机制。

多态的应用

1.多态数组
父类[] 引用名=new 父类[?];
AA a=new AA[5];
2.多态参数
在方法的参数列表中,父类作形参,子类作实参。
public void show(Object o){}Object作为形参,传入一个子类作为实参。

五、优点

提高了代码的复用性,利于代码维护。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值