多态多态是指一个对象在不同条件下所表现的不同形式,意味着父类型的变量可以引用子类型的对象。
继承关系是一个子类能继承父类的特征,并且附加一些新特征。子类是它的父类的特殊化,每个子类的示例都是其父类的实例,但反过来不成立。因此总可以将子类的实例传给需要父类型的参数。使用父类对象的地方都可以使用子类的对象。
多态的格式:
父类类型 变量名 = new 子类类型();
然后通过 变量名.方法名()调用在子类中重写的方法
多态体现为父类引用变量可以指向子类对象:定义了一个父类类型的引用,指向新建的子类类型的对象,由于子类是继承他的父类的,所以父类类型的引用是可以指向子类类型的对象的。
例如下面这个代码
public class PolymorphismDemo {
public static void main(String[] args) {
// TODO Auto-generated method stub
displayObject(new Circle(1,"red",false));
displayObject(new Rectangle(1,1,"black",true));
}
public static void displayObject(GeometricObject object) {
System.out.println("Created on "+object.getDateCreated()+
".Color is "+object.getColor());
}
}
方法displayObject(第7行)具有GeometricObject类型的参数,可以通过传递任何一个GeometricObject的实例(例如第4,5行)来调用displayObject。