方法重写(Override),也被称为覆盖:
- 两同(方法名相同、形参列表相同);
- 两小(子类方法重写的返回值类型必须比父类方法返回值类型更小,或者相等;子类方法的声明抛出的异常必须比服了方法声明抛出的异常更小,或者相等)
- 一大(子类的访问权限比父类访问权限更大,或者相等)。
说明:当子类从父类那里继承得到的方法,不能真正满足子类的需求的时候,子类就可以重写父类的方法。
@Override注解:
- 当注释用,方便阅读;
- 提高可读性;
- 让编译器执行检查方法的正确性,要求该类必须重写父类的方法,即@Override下面的方法名是否是父类中所有的,如果没有则报错;
public class Father { public void test(){ System.out.println("test"); } class child extends Father{ @Override public void test(){ } } }
说明:将@Override注释去掉的话,编译器会默认创建了新的方法