java 基础 ->多态

来源:互联网 发布:machinarium for mac 编辑:程序博客网 时间:2024/05/17 23:40
4.8 多态
定义:某一类事物的多种存在形态。

例:动物中猫,狗。
猫这个对象对应的类型是猫类型:猫x=new猫();
同时猫也是动物中的一种,也可以把猫称为动物:动物y=new猫();
动物是猫和狗具体事物中抽取出来的父类型。
父类型引用指向了子类对象。
多态性简单说就是一个对象对应着不同类型。
体现:
父类或者接口的引用指向或者接收自己的子类对象。
作用:
多态的存在提高了程序的扩展性和后期可维护性。

前提:
1.需要存在继承或者实现关系。
2.需要有覆盖操作。

好处:
提高了代码的扩展性,前期定义的代码可以使用后期的内容。
弊端:

前期定义的内容不能使用(调用)后期子类的特有内容。

instanceof:用于判断对象的具体类型,只能用于引用数据类型判断,通常在向下转型前用于健壮性的判
断。

多态时,成员的特点:
1.成员变量
编译时:参考引用型变量所属的类中是否有调用的成员变量。有,编译通过,没有,编译失败。
运行时:参考引用型变量所属的类中是否有调用的成员变量,并运行该所属类中的成员变量。
简单说:编译和运行都参考等号的左边

2.成员函数(非静态)
编译时:参考引用型变量所属的类中是否有调用的函数。有,编译通过。没有,编译失败。
运行时:参考的是对象所属的类中是否有调用的函数。
简单说:编译看左边,运行看右边。

3.静态函数
编译时:参考的是对象所属的类中是否有调用的函数。
运行时:参考的是对象所属的类中是否有调用的函数。
简单说:编译和运行看左边。

0 0