在Java中,protected关键字用于限制类成员(如变量、方法和内部类)的访问权限。当一个类的成员被声明为protected时,它可以被以下几种方式访问:
这意味着protected成员对于同一个包内的其他类是不可见的,但对于不同包中的子类是可见的。这有助于实现封装和继承的原则,同时保护类的内部实现细节。
下面是一个简单的例子,演示了如何使用protected关键字限制访问权限:
// File: Animal.java
package animals;
public class Animal {
protected String name;
protected void eat() {
System.out.println(name + " is eating.");
}
}
// File: Dog.java (同一个包)
package animals;
public class Dog extends Animal {
public void bark() {
name = "Dog";
eat(); // 可以访问父类的protected方法
}
}
// File: Cat.java (不同包)
package pets;
import animals.Animal;
public class Cat extends Animal {
public void meow() {
name = "Cat";
// eat(); // 无法访问父类的protected方法,会导致编译错误
}
}
在这个例子中,Animal类有一个protected变量name和一个protected方法eat()。Dog类继承了Animal类,并且可以访问这些protected成员。然而,Cat类虽然也继承了Animal类,但由于它位于不同的包中,无法访问这些protected成员。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。