JAVA中的覆盖override:
覆盖只会在类继承的时候才会出现,覆盖要求两个函数的名字和参数列表都完全一样。
覆盖override的注意事项:
1. 对于父类中的静态函数不可以覆盖。
2. 重写的方法不能降低父类方法的"可见度"。
3. 不能抛出新的异常或者父异常。
如下例:
class A{
static void m1(){System.out.println("父类A的方法m1");}
void m2(){}
// int m2(){}//错误,不能重载m2,参数列表一样
public void m3(int a){}
}
class B extends A{
// void m1(){}//不能重写A的m1为非静态方法
static void m1(){System.out.println("重写(Override)父类A的方法m1");}//重写静态方法
// private void m3(int a){}//重写错误,不能重写A的m3,因为降低了m3的可见性
void m2(){}//正确,重写父类A的m2,参数列表和返回值都一样
public void m3(){}//正确,重载父类A的m3,参数列表不同
void m4(){}
void m4(int a){}//正确,重载B的m4
void m5(double b){
System.out.println("Double Method "+b);
}
} |