您的位置:首页 > 职场人生

黑马程序员-Java基础07

2014-05-07 19:53 120 查看
-------
android培训、java培训、期待与您交流! ----------

多态:多种形态

1对象的多态性(类型提升,子类对象为父类型)

(提升的好处:提高了扩展性,隐藏子类型。提升的局限性:只能使用父类中的方法。如果子类有覆盖的话,运行的事子类的内容)

class 猫 extends 动物{}

class 动物{}

猫 cat=new 猫();

动物 cat=new 猫();(猫这个实例具备着两种形态,一个是猫另一个是动物。这就是多态性)

多态在程序中的体现:父类或者接口的引用指向了自己的子类对象。(父类型指向子类的对象)

2.多态的前提:

(1)必须有继承或者实现的关系

(2)通常都有覆盖的操作

3.多态的好处:提高了程序的扩展性,在思想上也有不同,以前是面对一个对象调用,对象多了调用麻烦。

相当于指挥一批对象做事情,将复杂的事情简单化。

多态的弊端:多态的出现,虽然可以让前期的程序使用后期的内容。

不可以使用子类的特有内容。

注意:对于子父类类型转换动作,自始至终都是子类对象在做类型的转换而已。

4.向下转型需要注意:父类型向下转成子类型,因为子类型不唯一,所以需要进行判断。

用到的关键字是 instanceof:对象 instanceof 类型

Animal an=new Cat();

if(an instanceof Cat)

{

Cat c=(Cat)an;

c.猫中特有的方法;

}else if(an instanceof Dog)

{

Dog d=(Dog)an;

d.狗中特有的方法;

}

5.多态中的特点:

(1)成员变量:多态调用时,对于成员变量,无论是编译还是运行,结果只参考引用型变量所属的类中的成员变量。(参考等号左边)

(2)成员函数:多态调用时,对于成员函数,编译时参考引用型变量所属类中是否有被调用的方法,有,编译通过,没有,

编译失败。运行时,参考的事对象所属的类中是否有调用的方法。(编译看左边,运行看右边)

(3)静态函数:多态调用时,编译和运行都看左边。

六、Object:所有类的超类

所有对象都具备的方法定义在该类中
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: