Day04:继承的意义(下)

对象转型

向上造型

什么是向上造型?
子类对象赋给父类引用。
父类引用指向子类对象。

子类转成父类 默认进行(父类引用指向子类对象)。

为什么需要向上造型?
子类对象可以放入父类类型的数组中。
父类数组同一管理所有子类对象。
减少代码冗余
向上造型的格式:

父类类型 引用=子类对象;
Pet p=new Dog();

向上造型的特性:
向上造型后的父类引用,只能调用到父类中的成员,不能调用到子类特有的成员。

向下转型(强制类型转换):

什么是类型转换?
就是将一个类型的引用,转换成另一个类型。
为什么需要类型转换?
父类引用无法调用到子类特有的成员如果必须要调用,就需要类型转换。

父类转成子类 强制进行。

强制类型转换的注意事项:
如果将一个A子类的引用强转成B子类,会发生类型转换异常ClassCastException为了防止这样的异常发生在强转前,一般要先判断一下实际的类型

关键字:

instanceof:测试左边的对象是否是右边类的实例,

如果是返回true否则fasle。

<对象> instanceof <类型> 

方法重写(方法覆盖,override)
什么是方法重写?
子类不满父类中某个方法的功能,重新编写父类方法的现象。
什么需要方法重写?
父类中的方法不能满足子类的要求。
如何进行方法重写?
简单的方法重写:
在子类中编写一个和父类中的某个方法,方法名相同,参数列表相同,访问修饰符和返回值也相同的方法。
方法重写的效果:
在向上造型的前提下
指向子类对象的父类引用
在调用被子类重写的方法时
运行的是子类重写后的方法
方法重写的运行期绑定:
父类引用在运行方法时
jvm会检测这个父类引用指向的
真实类型,调用真实类型重写后的方法
方法重写的详细规则:
必须相同的方法名,参数列表
可以不同的
返回值:
基本数据类型。
必须相同引用数据类型。
可以返回其子类
访问修饰符:
子类重写的方法的访问修饰符,
不能比父类更严格

访问修饰符类型:
public
protected
默认
private

重载和重写的区别?

          位置    方法名    参数   返回值   修饰符

重载:同类     相同        不同     无关     无关

重写:子类     相同        相同     相同     相同

重载:只看同名方法的参数列表。编译期绑定

重写:子父类方法要一模一样。运行期绑定

原文地址:https://www.cnblogs.com/wsnb8/p/11307742.html