Heim > Java > JavaErste Schritte > Hauptteil

Detailliertes Beispiel eines geschützten Schlüsselworts in Java

王林
Freigeben: 2020-06-02 16:52:40
nach vorne
2801 Leute haben es durchsucht

Detailliertes Beispiel eines geschützten Schlüsselworts in Java

Schauen wir uns zunächst die folgenden beiden Beispiele an:

Beispiel 1:

//包A中有一个动物类  
package testa;  
public class Animal {  
    protected void crowl(String c){  
        System.out.println(c);  
    }  
}
Nach dem Login kopieren

(Empfohlenes Video-Tutorial: java Video)

Beispiel 2:

package testb;
import testa.Animal;
 
class Cat extends Animal 
{  
    
}  
public class Rat extends Animal{  
    public void crowl(){  
              this.crowl("zhi zhi"); //没有问题,继承了Animal中的protected方法——crowl(String)  
              Animal ani=new Animal();
              ani.crowl("animail jiaojiao"); //wrong, The method crowl(String) from the type Animal is not visible 
              Cat cat=new Cat();  
              cat.crowl("miao miao"); //wrong, The method crowl(String) from the type Animal is not visible  
    }  
}
Nach dem Login kopieren

Da sowohl Katzen als auch Mäuse die Tierklasse erben, kann die Vererbung der Katze im Rahmen der Mausklasse nicht erfolgen gesehen werden Was ist mit der crow()-Methode?

Fragen und Antworten:

geschützt Zugriffsschutzregeln sind sehr subtil. Obwohl die geschützte Domäne für alle Unterklassen sichtbar ist. Aber eines ist sehr wichtig. Wenn sich in verschiedenen Paketen befinden, können -Unterklassen nur auf die geschützte Domäne der übergeordneten Klasse zugreifen, die sie innerhalb ihres eigenen Bereichs erben, aber nicht auf andere Unterklassen (mit derselben übergeordneten Klasse). ). Die vom biologischen Bruder der Klasse geerbte geschützte Domäne und die geschützte Domäne ani.crow1() des übergeordneten Klassenobjekts. Um es ganz klar auszudrücken: Mäuse können nur „zhi, zhi“ rufen. Selbst wenn er die Katze sehen kann (er kann in seinem eigenen Bereich ein Katzenobjekt erstellen), wird er nie miauen lernen.

Mit anderen Worten, die von cat geerbte Crowl-Methode ist im Rahmen der Cat-Klasse sichtbar. Im Rahmen der Rattenklasse ist es jedoch nicht sichtbar, auch wenn Ratte und Katze Brüder sind.

Außerdem: Aus diesem Grund können wir das Objekt aObject.clone() nicht einfach direkt klonen, wenn wir die Methode clone verwenden. Es muss in aObject.bObject=(Bobject)this.bObject.clone();

Zusammenfassung:

Wenn B A erweitert, kann es im Rahmen der Unterklasse B nur aufrufen die geschützte Methode des durch diese Unterklasse B definierten Objekts (diese Methode wird von der übergeordneten Klasse A geerbt). Die geschützten Methoden anderer Objekte der Klasse A (A selbst und von A geerbt) können nicht aufgerufen werden.

Empfohlenes Tutorial: Java-Einstiegsprogramm

Das obige ist der detaillierte Inhalt vonDetailliertes Beispiel eines geschützten Schlüsselworts in Java. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:csdn.net
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage