黑马程序员-自学第8天-多态

来源:互联网 发布:淘宝开店起名字 编辑:程序博客网 时间:2024/04/26 04:10

---------------------- android培训、java培训、期待与您交流! ----------------------

多态:

多态,字面上理解就是"多种状态",现实生活中有无数多态的例子,比如卡车,小汽车,公车都是汽车这一类事物的多种状态,它们都是汽车的一种,但是它们都有自己特有的运行方式,这就是现实的多态. 在程序设计中,多态就是不同的子类对象接受同一个来自父类的信息的时候执行不同的操作,例如在一个"画图"父类里面定义了画图的基本方法,有两个子类分别是"画三角形"和"画圆",很明显画三角形和画圆形都是画图的不同状态,但是画图这个类不知道要画什么具体的图像,所以只需要发出一个画图的信息,而"画三角形"的子类和"画圆形"的子类接受到同一个信息以后,它们会做出不同的操作,画出不同的图形,这就是多态.

详解:

1.      多态的体现:父类的引用指向自己的子类对象

2.      多态的前提:类与类之间必须有继承或者实现的关系

3.      多态的好处:提高程序的扩展性

4.      多态的弊端:提高了扩展性,但是只能使用父类的引用访问父类中的成员


多态转型:

当父类的引用指向子类对象的时候,此时的子类会自动转型成父类类型

比如:Animala=new Car()      //此时Car就自动向上转型

如果要使用子类中特有的方法时,可以把向上转型后的子类强制向下转型成子类类型

比如:Car c=(Car)a;       //向下转型,然后再用c.方法名类调用子类特有的方法

多态中成员函数的特点:

在编译时,参阅引用型变量所属的类中是否有调用的方法,如果有,编译通过,如果没有则失败.

在运行时,参阅对象所属的类中是否有调用的方法,如果有,编译通过,如果没有则失败.

简单总结就是:成员函数的多态调用时,编译看左边,运行看右边.

在多态中,成员变量的特点:

无论编译和运行,都参考左边(引用型变量所属的类)

在多态中,静态成员函数的特点:

无论编译和运行,都参考左边


---------------------- android培训.java培训、期待与您交流! ----------------------

详细请查看:http://edu.csdn.net/heima