Was ist der Unterschied zwischen einer abstrakten Funktion und einer virtuellen Funktion? In welchen Fällen wird die Verwendung von virtuell oder abstrakt empfohlen? Welcher ist der beste
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.
Was ist der Unterschied zwischen einer abstrakten Funktion und einer virtuellen Funktion? In welchen Fällen wird die Verwendung von virtuell oder abstrakt empfohlen? Welcher ist der beste
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...
Wie kann ich eine Klasse oder Methode in Python abstrakt machen? Ich habe versucht, __new__()so neu zu definieren: class F: def __new__(cls): raise Exception("Unable to create an instance of abstract class %s" %cls) aber jetzt, wenn ich eine Klasse erstelle G, die von Fso erbt : class G(F): pass...
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...
Ich interagiere durch Klassen in einer Jar-Datei und möchte diejenigen finden, die nicht abstrakt sind. Ich kann dies lösen, indem ich die Klassen instanziiere und InstantiationException abfange, aber das hat einen Leistungseinbruch, da einige Klassen einen starken Start haben. Ich kann in den...
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,...
Ich habe heute die Refactoring-Funktion "Pull-Schnittstelle" von Eclipse verwendet, um eine Schnittstelle basierend auf einer vorhandenen Klasse zu erstellen. Das Dialogfeld bot an, alle neuen Methoden der neuen Schnittstelle als "abstrakte" Methoden zu erstellen. Was wäre der Vorteil davon? Ich...
Nachdem ich in PHP 5.2 strenge Warnungen aktiviert hatte, sah ich eine Menge strenger Standardwarnungen aus einem Projekt, das ursprünglich ohne strenge Warnungen geschrieben wurde: Strenge Standards : Statische Funktion Programm :: getSelectSQL () sollte nicht abstrakt sein in...
Kann ich eine abstrakte Klasse definieren, ohne eine abstrakte Methode
Ist es möglich, abstrakte Basisklassen in JavaScript zu simulieren? Was ist der eleganteste Weg, dies zu tun? Sagen wir, ich möchte etwas tun wie: - var cat = new Animal('cat'); var dog = new Animal('dog'); cat.say(); dog.say(); Es sollte ausgegeben werden: 'Rinde',
C # -Methoden in Schnittstellen werden ohne Verwendung des virtualSchlüsselworts deklariert und in der abgeleiteten Klasse ohne Verwendung des overrideSchlüsselworts überschrieben . Gibt es einen Grund dafür? Ich gehe davon aus, dass dies nur eine Annehmlichkeit für die Sprache ist, und...
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...
Gibt es eine Standardmethode, um in Swift eine "reine virtuelle Funktion" zu erstellen, d. H. einer, der muss von jeder Unterklasse außer Kraft gesetzt werden, und die, wenn sie es nicht, eine Kompilierung Fehler verursacht
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:...
Ich habe heute mit dem UI-Router herumgespielt, um das Gerüst in Ionic besser zu verstehen, und eine Sache, die mir aufgefallen ist, war, dass sie dem abstrahierten Zustand von "Tabs" eine URL geben. Das einzige Mal, dass ich jemals abstrakte Zustände verwendet habe, habe ich eine leere...