类方法的覆盖
方法覆盖即指在子类中重新定义父类中已有的方法。
class Car
{ int color_number;
int door_number;
int speed;
public void push_break()
{
speed = 0;
}
public void add_oil() { … }
}
class Trash_Car extends Car
{
double amount;
public void fill_trash() { … }
public void push_break()
{
speed = speed – 10;
}
}
覆盖方法的调用
对于重写的方法,Java运行时系统根据调用该方法的实例的类型来决定选择哪个方法调用。
在这里, 类Trash_Car中的push_break( )方法将被调用。
public class DemoCar
{
public static void main( String args[ ] )
{
Car aCar = new Trash_Car( );
aCar. push_break( );
}
}
方法覆盖时应遵循的原则
(1)覆盖后的方法不能比被覆盖的方法有更严格的访问权限。
(2)覆盖后的方法不能比被覆盖的方法产生更多的例外。



