发生多态要有三个前提条件
继承、重写、父类引用指向子类对象
public class Figure {
//绘制几何图形方法
public void onDraw()
{
System.out.println("绘制Figure...");
}
}
//几何图形三角形
public class Triangle extends Figure { //这里体现了多态第一点:继承
// 绘制几何图形方法
@Override
public void onDraw() {//这里体现了多态第二点:重写
System.out.println("绘制三角形...");
}
}
//几何图形椭圆形
public class Ellipse extends Figure {
//绘制几何图形方法
@Override
public void onDraw() {
System.out.println("绘制椭圆形...");
}
}
public class HelloWorld {
public static void main(String[] args) {
// f1变量是父类类型,指向父类实例
Figure f1 = new Figure();
f1.onDraw();
// f2变量是父类类型,指向子类实例,发生多态
Figure f2 = new Triangle();
f2.onDraw();
// f3变量是父类类型,指向子类实例,发生多态
Figure f3 = new Ellipse();
f3.onDraw();
// f4变量是子类类型,指向子类实例
Triangle f4 = new Triangle();
f4.onDraw();
}
}
打印结果为:
绘制Figure...
绘制三角形...
绘制椭圆形...
绘制三角形...