1.抽象类中的方法不可以被private修饰。
抽象方法的目的是为了被重写的,如果定义了private,(就已经被隐式的设置为final)那么继承该抽象类的类就不能访问重写该抽象方法了。也就是说所定义的私有抽象方法一点意义也没有。
实现类重写重写方法的规则和继承重写的规则相同:重写方法访问修饰符的权限必须大于等于父类抽象方法,返回值和抛出的异常类型必须小于等于父类抽象方法。
抽象类继承抽象类时,抽象父类的抽象方法不一定需要被被重写。
public abstract class Abstract {
abstract void method1();
void method2() {
System.out.println("普通方法二");
}
}
abstract class Child extends Abstract{ //抽象类继承抽象类不需要一定重写抽象父类的抽象方法
//不会报错
}
class Test2 extends Child{
@Override
void method1() {
System.out.println("shuchu ");
}
}
2.接口的中的方法默认均为public abstract。
接口的方法都是抽象方法 不可以被除了public外其他的修饰符修饰,因为接口是一种约束和规范,是一种更加更高级的抽象类,抽象类的方法必须是公开的,因为要让其他类继承和使用。
由于实现类重写接口中的抽象方法,重写的方法必须遵循规定,重写方法访问权限大于等于抽象方法,所以重写方法的访问修饰符也一定时public