Was ist der Unterschied zwischen subClass sc = new subClass() und Oberklasse sc = new Unterklasse?
class superClass {}
class subClass extends superClass{}
public class test
{
public static void main()
{
superClass sc1 = new subClass();
subClass sc2 = new subClass();
//whats the difference between the two objects created using the above code?
}
}
- mögliche Duplikate von Was bedeutet es, "das Programm um eine Schnittstelle"?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Einfache Erklärung :
Wenn Sie
Nur public-Methoden, die definiert sind in
SuperClass
zugänglich sind. Methoden definiert, die inSubClass
nicht.Wenn Sie
öffentlichen Methoden definiert, die in
SubClass
sind auch zugänglich zusammen mit derSuperClass
Scham-Methoden.Objekt erstellt, ist in beiden Fällen die gleiche.
Ex:
Die zwei Objekte sind genau die gleichen. Was anders ist, ist der Typ der variable, wo der Objekt-Referenz gespeichert ist. In der Praxis bedeutet dies, dass, wenn es irgendwelche Methoden, die spezifisch für
subClass
Sie werden in der Lage sein, um Ihnen den Zugang durchsc2
aber nicht durchsc1
(letzteres würde erfordern, aus einem Guss).In beiden Fällen werden Objekte von
subClass
wird erstellt, aber die Verweise anders sein wird.Mit der Referenz von
superClass
ich.esc1
Sie nicht in der Lage, die Methoden aufrufen, präsentieren in dersubClass
aber nicht in dersuperClass
. Sie benötigen casting-aufrufen dersubClass
Methoden.Wie :
Nun :
Die Objekte sind die gleichen. Da jedoch
sc1
ist deklariert als TypsuperClass
Sie nicht verwendensubClass
Methoden auf, die es ohne casting.Zusätzlich zu den oben genannten Antworten, weil das erstellte Objekt ist wirklich ein Objekt des Typs
SubClass
können Sie werfen es zuSubClass
und rufen Sie die Methoden:nur so denken.
wenn Sie mit der übergeordneten (super-Klasse) Verweis erhalten Sie Zugriff auf nur die Dinge(Variablen , Methoden), die Eltern hat. aber wenn man die Referenz von Kind, das Sie bekommen alles, was das Eltern-und Kind (Kind erbt Eigenschaften von Vater).