Java-多态

理解多态

多态的使用条件

1、必须在继承体系下

2、子类必须要对父类中方法进行重写

3、通过父类的引用调用重写的方法

我们创造了一个父类animal和两个子类dog以及bird

向上转型:

有三种方式可以实现向上转型

1、直接赋值

该方法可以通过直接赋值的方式向上转型

2、方法传参

该方法是通过方法传参来向上转型

3、返回值

该方法则是通过返回值来向上传参

向上转型的优点:让代码实现更简单灵活。

向上转型的缺陷:不能调用到子类特有的方法。

重写方法

1、方法名必须相同

2、参数列表必须相同

3、返回值必须相同

注意

1、被private修饰的方法不能重写

2、被static修饰的方法不能重写

3、被final修饰的方法不能重写(该方法被称为密封方法)

4、访问修饰限定符   private<默认权限<protected<public,子类的访问权限必须大于等于父类

5、方法的返回值可以不同,但必须具有父子关系

6、构造方法不能被重写

通过父类引用,调用这个子类重写的方法

该过程叫做运行时绑定(动态绑定)

动态绑定:即在编译时,不能确定方法的行为,需要等到程序运行时,才能够确定具体 调用那个类的方法

静态绑定:即在编译时,根据用户所传递实参类型就确定了具体调用那个方法。典型代 表函数重载。

向下转型

将一个子类对象经过向上转型之后当成父类方法使用,再无法调用子类的方法,但有时候可能需要调用子类特有的 方法,此时:将父类引用再还原为子类对象即可,

向下转型用的比较少,而且不安全,万一转换失败,运行时就会抛异常。Java中为了提高向下转型的安全性,引入 了 instanceof ,如果该表达式为true,则可以安全转换

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值