Java基础复习:初识多态
2013-05-11 12:08
393 查看
A a = new B();
假设满足一下条件:
A是一个类,B是A的一个子类
A是一个接口,B或它的其中一个父接口实现A
/** * 父类:汽车 */ class Car { public String name = "NoBrandCar"; public void show(){ System.out.println("This is a noraml car"); } } /** * 子类:宝马 */ class BMW extends Car { public String name = "BMW"; public String color = "white"; public void show(){ System.out.println("It's BMW"); } public void say(){ System.out.println("It's beautiful"); } } public class PolymorphismDemo { public static void main(String[] args) { /** * 编译类型:Car * 运行类型:BMW * 我可以把实际生产的BMW在编译时只当作Car来对待 */ Car c = new BMW();//最简单的多态形式 c.show(); //c.say();//无法访问,编译时只是将其当作车,其并没有say方法,那么如何调用呢? //此时利用 instanceof 进行类型判断,并强转 if(c instanceof BMW){ BMW b = (BMW)c; b.say(); } } }
使用多态的好处:
把不同的子类对象都当作父类来看,可以屏蔽不同子类对象之间的差异,写出通用的代码,做出通用的编程,以适应需求的不断变化。
值得注意的是:
多态对于静态方法不起作用,因为他们属于前期绑定;由于无法扩展final方法,因此多态对于final方法也不起作用。
相关文章推荐
- 复习之java基础---->多态:向上转型
- Java基础复习---多态
- 黑马程序员——Java 基础 面向对象之多态 (复习)
- 黑马程序员--java基础复习之多态与Object及匿名内部类
- java基础复习(继承和多态)
- JAVA基础复习九-多态、抽象类、接口
- 黑马程序员—java基础复习—多态和内部类
- 黑马程序员 java基础复习三之对象初始化,多态和异常等
- 复习java基础------>java的静态绑定和动态绑
- 复习java基础第一天
- JAVA基础(3):多态
- Java基础复习---继承
- 2017年4月28日,周结(十),复习Java巩固基础,温故而知新
- JAVA基础再回首(八)——多态、(成员、局部、匿名)内部类
- Java基础复习——数据类型、变量和数组
- JAVA基础复习十三-StringBuffer、数组排序、二分查找、自动拆装箱
- Java基础复习:字符流
- Java基础系列之初识JAVA
- Java基础第四天--多态
- Java基础教程之类型转换与多态