2017-06-10 6 views
-1

Ich möchte verstehen, warum wir nicht auf geschützte Mitglieder einer Klasse über eine andere Klasse Tochter (Vererbung) zugreifen können, die nicht im selben Paket ist. wie folgt aus:Geschützte Mitglieder mit Vererbung

package library ; 
class Book { 
    protected String author ; 
    } 

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

Welche Sprache soll das sein? 'Class',' Public', 'Protected' und' Package' sollen Kleinbuchstaben sein. So klar, dass Code nicht kompiliert, bitte zeigen Sie Code, * würde * kompilieren, um Ihre eigentliche Frage zu demonstrieren. – luk2302

+0

Sie müssen Schlüsselwörter richtig buchstabieren! Was Sie gepostet haben, wird nicht kompiliert. Was ist ein "Dauther"? Wer hat dir gesagt, dass "geschützte" Mitglieder nicht von verschiedenen Paketen aus erreichbar sind? Das ist einfach nicht wahr. Jede erweiterbare Klasse kann auf die geschützten Mitglieder der Superklassen zugreifen. Ich schlage vor, dass Sie das Java-Tutorial und die JLS studieren. Lesen Sie das Feinhandbuch. –

Antwort

0

Der geschützte Zugriffsmodifikator ist innerhalb Paket und außerhalb des Pakets, sondern durch Vererbung nur.

Der Zugriffsmodifizierer für geschützten Zugriff kann auf Datenelement, Methode und Konstruktor angewendet werden. Es kann nicht auf die Klasse angewendet werden. Klasse zu verlängern zuerst sollte es sichtbar .Apply richtigen Zugriffsmodifikator

public class Book { 
     protected String author; 
    } 

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

Sie das geschützte Mitglied der Superklasse in einer Unterklasse zugreifen können, sondern nur in einer inheritance Art und Weise, e, g .:

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

Sie können zugreifen, als wäre es ein Mitglied Ihrer eigenen Klasse. Sie können jedoch nicht darauf zugreifen, wie Sie es mit public Mitgliedern tun (indem Sie den Operator . verwenden), da geschützte Mitglieder außerhalb der Hierarchie der Vererbungsklasse nicht sichtbar sind.

Verwandte Themen