Als «abstract» getaggte Fragen

abstract ist ein Schlüsselwort, das von einer Vielzahl objektorientierter Programmiersprachen geteilt wird. Methoden und Klassen können als abstrakt markiert werden, um anzuzeigen, dass sie nicht die vollständige Implementierung der Anwendungslogik enthalten und erweitert werden müssen. Abstrakte Klassen können nicht instanziiert werden und dienen dem Zweck, eine einheitliche Schnittstelle für ihre Unterklassen bereitzustellen sowie allgemeine Methoden zu implementieren, die nicht für jede Unterklasse neu implementiert werden müssen.

573
Können wir eine abstrakte Klasse instanziieren?

Während eines meiner Interviews wurde ich gefragt: "Können wir eine abstrakte Klasse instanziieren?" Meine Antwort war "Nein, wir können nicht". Aber der Interviewer sagte mir: "Falsch, wir können." Ich habe ein bisschen darüber gestritten. Dann sagte er mir, ich solle es selbst zu Hause...

197
Java abstrakte Schnittstelle

Betrachten Sie ein Beispiel (das in Java kompiliert wird) public abstract interface Interface { public void interfacing(); public abstract boolean interfacing(boolean really); } Warum muss eine Schnittstelle abstrakt "deklariert" werden? Gibt es andere Regeln, die für eine abstrakte Schnittstelle...

176
Datenklasse in Kotlin erweitern

Datenklassen scheinen der Ersatz für die altmodischen POJOs in Java zu sein. Es ist durchaus zu erwarten, dass diese Klassen eine Vererbung ermöglichen, aber ich sehe keine bequeme Möglichkeit, eine Datenklasse zu erweitern. Was ich brauche ist so etwas: open data class Resource (var id: Long = 0,...

99
Warum nicht abstrakte Felder?

Warum können Java-Klassen keine abstrakten Felder haben, wie sie abstrakte Methoden haben können? Zum Beispiel: Ich habe zwei Klassen, die dieselbe abstrakte Basisklasse erweitern. Diese beiden Klassen haben jeweils eine identische Methode, mit Ausnahme einer String-Konstante, die zufällig eine...

78
Abstraktes Attribut (keine Eigenschaft)?

Was ist die beste Vorgehensweise, um ein abstraktes Instanzattribut zu definieren, jedoch nicht als Eigenschaft? Ich möchte etwas schreiben wie: class AbstractFoo(metaclass=ABCMeta): @property @abstractmethod def bar(self): pass class Foo(AbstractFoo): def __init__(self): self.bar = 3 Anstatt:...