📜  Java中受保护的关键字与示例(1)

📅  最后修改于: 2023-12-03 15:16:19.484000             🧑  作者: Mango

Java中受保护的关键字与示例

Java中的受保护关键字可以用于修饰类、属性和方法,保护它们不被其他类访问。在本文中,我们将讨论Java中受保护的关键字及其示例用法。

protected关键字

protected关键字只能在同一包中或者同一子类内部访问,它的作用是限制类的内部和继承链中的访问。protected关键字可以用来修饰类、成员变量和方法。

修饰类

使用protected关键字修饰类,可以使该类只能在同一包或者其他包中的子类中使用。例如:

package com.example;

protected class Foo {
    // ...
}

在该示例中,类Foo只能在com.example包或这个包的子类中使用。

修饰成员变量

使用protected关键字修饰成员变量,可以使该成员变量只能在同一包或者其他包中的子类中使用。例如:

package com.example;

public class Foo {
    protected String name;
}

在该示例中,类Foo中的成员变量name只能在com.example包或这个包的子类中使用。

修饰方法

使用protected关键字修饰方法,可以使该方法只能在同一包或者其他包中的子类中使用。例如:

package com.example;

public class Foo {
    protected void foo() {
        // ...
    }
}

在该示例中,类Foo中的方法foo()只能在com.example包或这个包的子类中使用。

示例

下面给出一个使用受保护关键字的示例:

package com.example;

public class Animal {
    protected String name;

    protected void eat() {
        System.out.println(name + " is eating.");
    }

    protected void sleep() {
        System.out.println(name + " is sleeping.");
    }
}

package com.example;

public class Cat extends Animal {
    public Cat(String name) {
        this.name = name;
    }

    public void play() {
        System.out.println(name + " is playing.");
    }
}

package com.example;

public class Main {
    public static void main(String[] args) {
        Cat cat = new Cat("Tom");
        cat.eat();   // Tom is eating.
        cat.sleep(); // Tom is sleeping.
        cat.play();  // Tom is playing.
    }
}

在该示例中,Animal类中的成员变量name和方法eat()sleep()都是受保护的,它们只能在Animal类或者Animal的子类中访问。Cat类继承自Animal类,并且在Cat类中使用了Animal类中受保护的成员变量和方法。Main类创建了一个Cat对象并调用了Cat类中的方法,包括其继承的受保护方法。

总结:受保护关键字可以用于保护类的内部和继承链中的访问,它可以限制类的访问范围,提高程序的安全性和可靠性。在编写Java程序时,合理使用受保护关键字可以使程序更加健壮,减少bug的产生。