面向对象之多态

1.多态是在继承/实现情况下的一种现象,表现为:对象多态、行为多态。

2.多态的前提:有继承/实现关系;存在父类引用子类对象;存在方法重写。

注意:多态是对象、行为的多态,Java中的属性(成员变量)不谈多态(编译看左边,运行看左边)。

People p1 = new Teacher();//People是父类,Teacher是子类

p1.run();//编译看左边,运行看右边。

3.使用多态的好处:在多态形式下,右边对象是解耦合的,更便于维护和扩展。定义方法时,使用父类类型的形参,可以接收一切子类对象,扩展性更强、更便利。

4.多态的弊端:多态下不能使用子类的独有功能。此时就需要进行强制类型转换。

5.类型转换

自动类型转换:父类 变量名 = new 子类();例如: People p = new Teacher();

强制类型转换:子类 变量名 = (子类)父类变量 例如 Teacher t = (Teacher)p;

注:存在继承/实现关系就可以在编译阶段进行强制类型转换,编译阶段不会报错。运行时,如果发现对象的真实类型与强转后的类型不同,就会报类型转换异常(ClassCastException)的错误出来。

强转前,Java建议:使用instanceof关键字,判断当前对象的真实性,再进行强转。

p instanceof Student

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值