这就是多态,当子类赋值给一个父类变量时,子类会向上转型为父类,子类的方法会隐藏父类的方法[code=java]举个经典的例子吧:
Class Shape{
public void draw()
{
}
}
Class A1 extends Shape
{
public void draw()
{
}
}
Class A2 extends Shape
{
public void draw()
{
}
}[/code]每种形状都可以画,如三角形,正方形等等,但每种形状的画法又不一样
有如下方法
public void drawShape(Shape shape)
{
shape.draw();
}
则该方法可以根据你实际传进来的对象调用相应的方法
比如:drawShape(new A1()),此时shape指向A1对象,则shape.draw()调用A1中的draw()
drawShape(new A2()),此时shape指向A2对象, 则shape.draw()调用A2中的draw()
如果A1 A2中没有重写draw(),都将调用Shape中的 draw() |