一个简单例子理解java多态

发生多态要有三个前提条件

  1. 继承
  2. 覆盖
  3. 声明的变量类型是父类类型,但实例则指向子类实例

举例:

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...
绘制三角形...
绘制椭圆形...
绘制三角形...
发布了290 篇原创文章 · 获赞 524 · 访问量 60万+

猜你喜欢

转载自blog.csdn.net/weixin_30363263/article/details/88086234