一个简单例子理解java多态

本文深入解析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...
绘制三角形...
绘制椭圆形...
绘制三角形...

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值