📌  相关文章
📜  我们想让一个类的成员可以在所有子类中访问,而不管子类在哪个包中.以下哪个关键字可以实现这一点? - Java (1)

📅  最后修改于: 2023-12-03 14:54:23.671000             🧑  作者: Mango

Java中实现在所有子类中访问一个类成员的关键字

在Java中,有一关键字可以实现让一个类的成员可以在所有子类中访问,而不管子类在哪个包中。这个关键字就是 protected

当一个成员被声明为 protected 后,它可以被同一包中的任何其他类访问,以及其他包中的任何子类访问。但是,这个成员仍然不能被其他包中的非子类访问。

因此,通过将类的成员声明为 protected,可以使它在所有子类中都可访问,而不管这些子类在哪个包中。

以下是一个示例代码片段,演示如何使用 protected 关键字:

package com.example;

public class Parent {
    protected String name = "John";

    public void getName() {
        System.out.println("Name: " + name);
    }
}

package com.example.child;

import com.example.Parent;

public class Child extends Parent {
    public void printName() {
        System.out.println("The name is: " + name);
    }
}

package com.example;

import com.example.child.Child;

public class Main {
    public static void main(String[] args) {
        Child child = new Child();
        child.printName(); // Output: The name is: John
    }
}

在上面的代码中,Parent 类中的 name 成员被声明为 protected,因此在 Child 类中可以直接访问。在 Main 类中创建一个 Child 类的对象,并调用 printName 方法,该方法打印出 Parent 类中的 name 成员的值。由于 printName 方法在 Child 类中,因此可以直接访问 Parent 类中的 protected 成员。

总之,通过将类的成员声明为 protected,可以实现在所有子类中访问该成员,而不管子类在哪个包中。