在Java中,除了常见的 public、protected、private 和默认访问修饰符之外,还有两个特殊的访问修饰符可以用于继承:final 和 abstract。
final 访问修饰符:当一个类或方法使用 final 修饰时,它表示该类或方法是最终的,不可被继承或重写。对于类而言,final 修饰符阻止其他类继承该类。对于方法而言,final 修饰符阻止子类重写该方法。
在上述示例中,FinalClass 被声明为 final 类,因此无法被其他类继承。finalMethod() 方法被声明为 final 方法,因此子类无法重写该方法。
abstract 访问修饰符:当一个类或方法使用 abstract 修饰时,它表示该类是抽象类或方法是抽象方法。抽象类不能被实例化,只能被继承。抽象方法没有实现,需要在子类中被实现(重写)。
在上述示例中,AbstractClass 被声明为抽象类,因此无法直接实例化。abstractMethod() 方法被声明为抽象方法,需要在具体的子类中被实现(通过 @Override 注解进行重写)。
需要注意的是,final 和 abstract 是互斥的,不能同时使用在同一个类或方法上。而其他访问修饰符(如 public、protected、private 和默认访问修饰符)可以与 final 或 abstract 结合使用,用于控制继承和访问权限。
综上所述,除了常见的访问修饰符之外,Java 中的 final 和 abstract 修饰符也可以用于继承关系中,分别表示最终性和抽象性。
网友评论