这一部分课本上讲的比较抽象,还是直接看代码理解的比较深刻。
public class Upcasting {
public static void main(String[] args) {
Shape s=new Shape();
s.startDraw(new Circle());
s.startDraw(new Square());
/*
Shape c=new Circle();
c.draw2(); //Error,Class Shape doesn't have Method draw2
*/
}
class Shape{
public void draw(){
}
public void startDraw(Shape s){
s.draw();
}
}
class Circle extends Shape{
public void draw(){
System.out.println("draw Circle");
}
public void draw2(){
System.out.println("draw Circle2");
}
}
class Square extends Shape{
public void draw(){
System.out.println("draw Square");
}
}