欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

第八章 多态

程序员文章站 2022-05-07 11:39:13
...

多态再谈向上类型转换。

Square和Circle都继承自Shape类,在main方法中,都进行了向上转换,此刻会疑惑输出结果是Shape类中的信息,还是各自自己的信息。

Java中除了static方法和final方法(private方法属于final方法)之外,其他所有的方法都是后期绑定。这意味着通常情况下,我们不必判定是否应该进行后期绑定——它会自动发生。

由于后期绑定,所以以下代码的结果输出的都是各自自己的输出信息。

public class Shape {

	public void draw() {
		System.out.println("draw shape");
	}
}
public class Square extends Shape {

	public void draw() {
		System.out.println("draw square");
	}
}
public class Circle extends Shape {

	public void draw() {
		System.out.println("draw circle");
	}
	
	public static void main(String[] args) {
		Shape circle = new Circle();
		circle.draw();
		Shape square = new Square();
		square.draw();
	}
}