子类方法覆盖父类方法,必须要保证权限大于等于父类权限
public class Fu {
void show() {
System.out.println("Fu show");
}
public void method() {}
}
public class Zi extends Fu{
public void show() {
System.out.println("zi show");
}
// void method() {} 编译出错 无修饰符 而父级的method是public权限,所有编写出错,无法覆盖
}
需要特别说明“无修饰符”这个情况,子类能否访问父类中无修饰符的变量/方法,取决于子类的位置。如果子类和父类在同一个包中,那么子类可以访问父类中的无修饰符的变量/方法,否则不行。
权限:
修饰符 | 类内部 | 同个包(package) | 子类 | 其他范围 |
---|---|---|---|---|
public | Y | Y | Y | Y |
protected | Y | Y | Y | N |
无修饰符 | Y | Y | Y或者N(见说明) | N |
private | Y | N | N | N |