黑马程序员技术交流社区

标题: 关于多态的简单总结20160328 [打印本页]

作者: 北极1989    时间: 2016-3-28 23:58
标题: 关于多态的简单总结20160328
多态是指事物存在的多种形态
多态前提:要有继承关系(可以继承普通类可以继承抽象类)或者实现关系(实现接口),
要有方法重写,
要有父类引用指向子类对象


1成员变量的访问
编译看 “=”左边,输出也是看”=”左边,左边的类是谁,输出的就是谁中的变量 ,如果左边的类中没有相应的变量就会报错.(看左边是为了,看父类中是否有对应的成员,有的话才能保证编译通过,没有就报错)
2 成员方法的访问>>动态绑定
编译看’=’左边,运行看’=’右边,如果右边的类中没有成员方法,编译的时候就会报错
总结:多态中,除了父类引用子类的重写方法外,其他的都是看父类自己的成员,若父类中没有对应的成员就会报错.

3 多态中,静态方法访问的特点

编译看左边,运行也看左边 ,静态和类相关,算不上重写,所以,访问还是左边的
总结,只有非静态的成员方法,编译看左边,运行看右边,其他全看左边,运行也是左边
(只有父类引用子类中的重写方法时编译看左边父类,运行看右边子类;
其他一律是编译和运行都看左边的父类,如果父类中没有相应的成员,就会报错,
如果子类中没有相应的成员,就会继承输出父类中的成员)


4 向上转型和向下转型

父类引用子类对象就是向上转型,把子类提升为父类
Personp=new  SuperMan();  //向上转型
向下转型就是把通过向上转型变为父类的再转回原来的子类
SuperMan s =(SuperMan)p;//向下转型
父类的引用不能直接使用子类对象特有的内容,除非向下转型之后才可以
5 多态的好处与弊端
好处,提高了代码的维护性和扩展性
弊端:父类无法直引用子类的内容

Instanceof ,判断前面的数据是不是后面的数据类型






欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2