【Java探索之旅】继承结构 继承和组合 protected final
在Java中,protected
和final
关键字可以用来修饰类成员(包括字段、方法),以控制其可见性和能否被覆盖或重新分配。
protected
关键字允许被修饰的成员在定义它的类的子类中被访问。如果不在同一个包中,那么只有通过子类的实例才能访问。final
关键字意味着成员不能被覆盖或重写。对于字段,这通常意味着它是常量;对于方法,意味着它不能被覆盖。对于类,意味着它不能被继承。
protected
和final
一起使用时,意味着成员既可以被同一个包中的其他类访问,也可以被不同包中的子类访问,但不能被修改。
以下是一个简单的例子,演示了如何使用protected
和final
关键字:
package org.example;
public class Parent {
protected final int VALUE = 10; // 可以被同包中的类访问和使用
protected final void printValue() { // 可以被同包中的类访问,但不能被重写
System.out.println(VALUE);
}
}
package org.example;
public class Child extends Parent {
public void demonstrate() {
printValue(); // 正确,可以访问由父类保护的成员函数
// VALUE++; // 错误,不能修改final字段的值
}
}
public class Main {
public static void main(String[] args) {
Child child = new Child();
child.demonstrate(); // 输出 10
}
}
在这个例子中,Child
类继承自Parent
类,可以访问并使用Parent
中用protected final
修饰的字段VALUE
和方法printValue()
。但是,Child
类不能修改VALUE
的值,因为它被声明为final
。
评论已关闭