深入解析Java方法重写中的覆盖规则
在Java中,方法的重写(Overriding)遵循以下覆盖规则:
- 类型覆盖:如果一个子类的方法签名与父类相同,那么这个子类的方法被称为对父类方法的覆盖。
class Animal {
void sound() {
System.out.println("Animal is making a sound");
}
}
class Dog extends Animal {
// 对父类sound方法进行覆盖
@Override
void sound() {
System.out.println("Dog barks loudly");
}
}
访问权限覆盖:子类的方法可能会被声明为
public
,protected
, 或者private
。如果子类覆盖了一个同名但访问权限更高的方法,那么这个覆盖是无效的。返回类型覆盖:子类可以覆盖父类方法的返回类型,只要这两个类型兼容(如一个接口和一个实现该接口的具体类)。
总结来说,Java方法重写遵循类型、访问权限和返回类型这三大覆盖规则。如果违反了这些规则,重写就会无效。
还没有评论,来说两句吧...