我想理解为什么我们无法在同一个包中访问另一个类女儿(使用继承)的类的受保护成员。 像那样:
package library ; class Book { protected String author ; } package building ; class CourseBook extends Book { public CourseBook() { Book book = new Book () ; book.author = "ABC"; } }
答案 0 :(得分:0)
受保护的访问修饰符可以在包内和包外部访问,但只能通过继承访问。
受保护的访问修饰符可以应用于数据成员,方法和构造函数。它不能在课堂上应用。 要首先扩展的类应该可见。应用适当的访问修饰符
public class Book {
protected String author;
}
class CourseBook extends Book {
public CourseBook() {
author = "ABC";
}
}
答案 1 :(得分:0)
您可以在子类中访问受保护的超类成员,但只能以inheritance
方式访问,例如:
Public CourseBook() {
author = "ABC";
}
您可以像访问自己班级的成员一样进行访问。但是,您不能像使用public
成员那样访问它(使用.
运算符),因为受保护的成员在继承类层次结构之外是不可见的。