Wenn das Schlüsselwort „virtual“ auf eine Methode angewendet wird, wird die gesamte Klasse abstrakt.
Sollte das Schlüsselwort „virtual“ oder „abstract“ nicht auf die Klasse angewendet werden? Es ist ein intuitiveres Design, weil es widerspiegelt, was tatsächlich aus Compiler-/Semantikperspektive geschieht.
Gab es andere Überlegungen, die mir entgangen sind, als die Designer diese Entscheidung getroffen haben?
Wenn das Schlüsselwort „virtual“ auf eine Methode angewendet wird, wird die gesamte Klasse abstrakt. Sollte das Schlüsselwort „virtual“ oder „abstract“ nicht auf die Klasse angewendet werden? Es ist ein intuitiveres Design, weil es widerspiegelt, was tatsächlich aus Compiler-/Semantikperspektive geschieht. Gab es andere Überlegungen, die mir entgangen sind, als die Designer diese Entscheidung getroffen haben?
Betrachten Sie den folgenden C ++ - Code:
class A
{
public:
int i;
}
class B: virtual public A{};
class C: virtual public A{};
class D: public B, public C{};
Ich versuche, die praktische Bedeutung abstrakter Klassen in der objektorientierten Programmierung, insbesondere in PHP, zu verstehen.
Nach meinem Verständnis erzwingen abstrakte Klassen...