第八章 多态
程序员文章站
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();
}
}