Java基础篇-多态

一、什么是多态?

1.多个子类继承于某同一父类,该父类引用能指向任一子类对象,并能调用被子类重写的方法。
2.实现类与接口之间也存在多态,接口引用可以指向其任一实现类的对象,并能调用其被实现类重写的方法。
3.“子类与父类之间的多态”和“实现类与接口之间的多态”区别在于:
一个类只能继承于一个父类,但能实现多个接口。
4.注意:“能调用被子类(或实现类)重写的方法”指的是,一个父类(或接口)引用能调用当前所指向的子类(或实现类)对象的方法,不能调用非当前引用所指对象的方法。

二、多态中父类引用的特点

1.编译期间,由定义它的类型决定它的引用的类型,只能调用自身的方法和变量。
原因:编译期间,“=”号右边的对象还未被创建出来。如:Plant p = new Tree();
new Tree()这个对象还未被创建出来。
2.运行期间,引用的类型由所创建的对象的类型决定,能调用自身的方法变量及子类的方法变量。
原因:运行期间,“=”号右边的对象已创建。

三、多态的好处

具有良好的扩展性,符合程序设计的开闭原则。

四、多态的体现

1.父类引用作为方法参数实现多态;
2.父类引用作为方法返回值实现多态:如,简单工厂方法。

五、多态的局限性

父类引用只能调用自身的方法和被子类重写的方法,不能调用子类特有的方法。
变量名 instanceof 类型名。运行期间,instanceof判断左边引用是否是继承于右边类 。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值