Java-geschützte Methodenzugänglichkeit
In der code unten der Consumer-Klasse kann auf die protected-Methode der Übergeordneten Klasse.Wie ist es möglich, da es keine Beziehung zwischen den Eltern und der Consumer-Klasse.Bitte erklären
class Parent {
public void method1(){
System.out.println("PUBLIC METHOD");
}
private void method2(){
System.out.println("PRIVATE METHOD");
}
protected void method3(){
System.out.println("PROTECTED METHOD");
}
}
public class Consumer {
public static void main(String[] args){
Parent parentObj = new Parent();
parentObj.method1();
//parentObj.method2();
parentObj.method3();
}
}
Dank
Kommentar zu dem Problem
Dies erklärt, java-member-Zugang: java.sun.com/docs/books/tutorial/java/javaOO/accesscontrol.html
InformationsquelleAutor der Frage JavaUser | 2010-06-17
Du musst angemeldet sein, um einen Kommentar abzugeben.
protected
bedeutet: gleiche Paket oder durch Vererbung. Seit den Klassen sind sowohl in derdefault package
(nicht empfohlen im wirklichen Leben),protected
ermöglicht den Zugriff. Übrigens: wenn Sie versucht haben, testen Sie java access control, vergessen Siedefault access
(default access
= kein Modifikator =package private
).private
Zugang auf der anderen Seite bedeutet: Zugang von nirgendwo, außer in dieser bestimmten Klasse (und nicht-statische innere Klassen, die noch Mitglied der host-Klasse).InformationsquelleAutor der Antwort atamanroman
Hier sind die relevanten Auszüge aus der Java Language Specification:
Den Abschnitt in Fettschrift ist die Antwort auf die Frage in diesem Szenario:
Parent
undConsumer
gehören zu der gleichenpackage
damit zumindestprotected
MitgliederParent
zugänglich sindConsumer
.Siehe auch
InformationsquelleAutor der Antwort polygenelubricants
Aufgrund der Paket-Schutz.
http://mindprod.com/jgloss/packagescope.html
InformationsquelleAutor der Antwort Monis Iqbal
Erstens, Sie sind im gleichen Paket. Zweitens, der Verbraucher ist eine innere Klasse von Eltern.
InformationsquelleAutor der Antwort Adam Crume
Adam sind Sie richtig!
Sie sind in der gleichen Paket ist, warum consumer-Klasse Zugriff auf protected-Methode der übergeordneten Klasse. Der Verbraucher ist nicht eine innere Klasse von Eltern.
InformationsquelleAutor der Antwort Rakesh Goyal