受保护的成员具有继承权

时间:2017-06-10 15:22:29

标签: java

我想理解为什么我们无法在同一个包中访问另一个类女儿(使用继承)的类的受保护成员。 像那样:

 package library ;
 class Book {
     protected String author ;
    }  

 package building ;  
 class CourseBook extends Book {
    public CourseBook() {
           Book book = new Book () ;
           book.author = "ABC";
          } 
     }

2 个答案:

答案 0 :(得分:0)

受保护的访问修饰符可以在包内和包外部访问,但只能通过继承访问。

受保护的访问修饰符可以应用于数据成员,方法和构造函数。它不能在课堂上应用。 要首先扩展的类应该可见。应用适当的访问修饰符

  public class Book {
        protected String author;
    }

class CourseBook extends Book {
    public CourseBook() {
           author = "ABC";
          } 
     }

答案 1 :(得分:0)

您可以在子类中访问受保护的超类成员,但只能以inheritance方式访问,例如:

Public CourseBook() {
    author = "ABC";
}

您可以像访问自己班级的成员一样进行访问。但是,您不能像使用public成员那样访问它(使用.运算符),因为受保护的成员在继承类层次结构之外是不可见的。

相关问题