JAVA的多态性

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://xxlcube.blog.csdn.net/article/details/8128317
class Shape {
	public void draw() {
		System.out.println("Draw a shape");
	}
	public void erase() {
		System.out.println("Erase a shape");
	}
}
class Circle extends Shape {
	public void draw() {
		System.out.println("Draw a Circle");
	}
	public void erase() {
		System.out.println("Erase a Circle");
	}
}
class Square extends Shape {
	public void draw() {
		System.out.println("Draw a Square");
	}
	public void erase() {
		System.out.println("Erase a Square");
	}
}
class Triangle extends Shape {
	public void draw() {
		System.out.println("Draw a Triangle");
	}
	public void erase() {
		System.out.println("Erase a Triangle");
	}
}
public class Demo {
	public static void main(String[] args) {
		Shape s = new Circle();
		s.draw();
		s.erase();
	}
}

从结果中,你可以很清楚的看到,最终的draw()和erase()方法是执行哪个类中的?

这就是JAVA中的多态性的典型体现,也可以说是动态绑定,运行时判断对象的真正类型,调用具体的方法。


展开阅读全文

没有更多推荐了,返回首页