Welche Member werden in einer untergeordneten Klasse nicht vererbt?

8

Ich versuche die folgende Frage zu beantworten:

  

Eine untergeordnete Klasse erbt bestimmte Mitglieder der übergeordneten Klasse nicht. Nenne drei       solche Mitglieder.

Ich weiß, dass private Mitglieder nicht an untergeordnete Klassen vererbt werden und Standardmitglieder nicht außerhalb des Pakets vererbt werden. Kann jemand die Antwort vervollständigen?

Bearbeitet: - Ich glaube, dass statische Mitglieder gemäß unten stehender Demonstration vererbt werden %Vor%     

Roledenez 16.04.2014, 08:05
quelle

5 Antworten

1

Keine Antwort, um die Begriffe zu verwenden.

Mitglieder, die sichtbar in der untergeordneten Klasse sind, werden oben beantwortet. Mitglieder sind sowohl Felder als auch Methoden (jede hat ihren eigenen Namensraum).

Vererbung als Teil der untergeordneten Instanz ist eine andere Frage: Auch unsichtbare private Mitglieder werden als solche "geerbt". Static Member sind Teil der Klasseninstanz und werden nicht vererbt (kann auch nicht überschrieben werden). Alle final Methoden können nicht überschrieben werden.

Argumentable Konstruktoren werden nicht vererbt; Sie müssen dieselbe Signatur in einem neuen untergeordneten Konstruktor erneut definieren.

Andere Deklarationen in einer Klasse könnten Klassendefinitionen sein. Dort hat das Schlüsselwort static eine andere Bedeutung und man kann offensichtliche Aussagen zur Sichtbarkeit / Vererbung machen. Zum Beispiel in Bezug auf nicht statische innere Klassen, die eine <outer-class>.this (rekursive Vorstellung) haben.

    
Joop Eggen 16.04.2014, 09:40
quelle
6

von JLS für Klassenmitglieder

  

Konstruktoren, statische Initialisierer und Instanzinitialisierer sind keine Member und werden daher nicht vererbt.

    
user2758757 16.04.2014 08:27
quelle
3

aus der Oracle Java-Dokumentation für Vererbung :

  

Eine Unterklasse erbt alle Mitglieder (fields, methods und nested)   Klassen) von seiner Oberklasse. Konstruktoren sind keine Mitglieder, also sie   werden nicht von Unterklassen geerbt, sondern vom Konstruktor der Oberklasse   kann von der Unterklasse

aufgerufen werden

Ich denke also, dass Sie hier Konstrukteure vermissen. Statische Methoden und Felder werden auch nicht vererbt, wenn sie in Unterklassen umgeschrieben werden, verwenden sie einfach die Signatur und hide die Implementierung der Methode / des Feldes in der Elternklasse.

Informationen zur Vererbung von statischen Feldern und Methoden finden Sie in dieser Diskussion steckte von Duncan, und dieses große Tutorial Overriding vs Verstecken

    
mounaim 16.04.2014 08:16
quelle
2

Konstruktoren und statische Member

    
Eugene 16.04.2014 08:07
quelle
0

Sie können kein privates Feld und keinen Konstruktor erben. Sie können einen Konstruktor nicht erben, da sie kein Mitglied der Superklasse sind. Sie können eine Superklassenkonstruktorform ihrer Unterklasse aufrufen. und Sie können auch auf ein privates Mitglied der Super-Klasse zugreifen kann durch öffentliche oder geschützte Methode der Super-Klassen zugegriffen werden.

    
user3375823 16.04.2014 08:47
quelle

Tags und Links