Wie erstellen Sie abstrakte Klasse Objekt implementiert die Schnittstelle ( JAVA )
Ich habe eine Schnittstelle
public interface I{
Status getStatus();
}
dann habe ich eine abstrakte Klasse implementieren, die Schnittstelle
public abstract class C implements I{
public Status getStatus() {
return status;
}
}
Möchte ich den Zugriff auf die getstatus () - Methode aus einer anderen Klasse, ich habe versucht
C status = new C();
aber ich bin immer Fehler "kann Nicht instanziiert Typ C"
Jede Hilfe wird sehr geschätzt..!!
danke.
- Du hast eine abstrakte Klasse, die eine Schnittstelle implementiert. Sie können einfach nicht instanziieren, weil es Abstrakt - das hat nichts mit der Tatsache zu tun, dass es eine Schnittstelle implementiert.
- also, wie kann ich auf die getStatus-Methode dann?
- Sie haben zu instanziieren ist eine konkrete Unterklasse von
C
, das ist das normale Verhalten für abstrakte Klassen. (Beachten Sie, dass Sie brauchen, um zu erklärenstatus
variable inC
fürC
zum selbst kompilieren, natürlich.)
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie nicht erstellen Sie Objekt einer abstrakten Klasse
Schreiben Sie eine konkrete Klasse, die erweitert die abstrakte Klasse, die Klasse-Objekt, rufen die Methode
Class
, als dass sich nicht kompilieren.Laut docs
Abstrakten Klasse können keine abstrakten Methoden, sondern es muss eine gültige use-case(wie der Aufruf super aus-Unterklasse). Sie können nicht instanziieren(erstellen von Objekten der abstrakten Klasse).
Also entweder entfernen abstract-Schlüsselwort, oder erstellen Sie eine Klasse, die erweitert die abstrakte Klasse.
Ans nur für den Datensatz, wenn eine abstrakte Klasse eine Schnittstelle implementiert, die Sie brauchen keine Implementierung der interface-Methoden in der abstrakten Klasse(obwohl Sie können, wenn Sie Ihr design diktiert so). Aber wenn Sie nicht implementieren von interface-Methoden in der abstrakten Klasse implementieren Sie implementieren müssen, um die gleiche in ersten konkreten Subklasse der abstract-Klasse. Auch wenn Sie tun, implementieren Sie die interface-Methoden in der abstrakten Klasse dann nicht implementieren müssen, um Sie wieder in die konkrete Unterklasse der abstrakten Klasse. Sie können jederzeit außer Kraft setzen, wenn.
Kann man nicht instanziieren abstrakte Klasse
Davon aus, dass Ihre Klasse muss
abstract
.Kann man nicht instanziieren eines
abstract class
.Was Sie tun können, ist,Lassen Sie kein Kind erweitert die Klasse und Objekt erstellen für diese.
Abstrakte Methoden und Klassen