Java多态

多态定义:

  相同类型的变量、调用同意方法时呈现出多种不同的行为特征,这就是多态。

Java引用变量有2个类型:一个是编译时类型,一个是运行时类型。编译时类型由声明该变量的类型决定,运行时类型由实际赋给该变量的类型决定。

如果编译时类型与运行时类型不一致,则就可能出现多态。

比如:  

Child继承自Parent,则Parent p1=new Child();表示父类引用指向子类对象,编译时类型是Parent类型,运行时时Child类型。

p1.show();

//1、若父类中定义了show()方法,子类没有重写,则调用父类方法。

//2、若父类中定义了show()方法,子类重写该方法,则调用子类方法。

//3、若父类没有定义show()方法,子类定义了该方法,则调用出错!因为编译时无法调用show()方法。

 为什么可以使用:Parent p1=new Child();

原因:因为子类其实是一种特殊的父类,因此java允许把一个子类对象直接赋给父类引用变量,无须任何类型转换,或者被称为向上转型,由系统自动完成。

posted on 2016-12-14 21:35  Javanumberone  阅读(246)  评论(0编辑  收藏  举报

导航