paar Tage machen vor ich auf einem Vorstellungsgespräch war, war ich eine Frage wie dieser fragt:Abstrakte Klasse, wie Methode abstrakt
Es ist eine abstrakte Klasse
A
mit zwei Methodenfoo
undbar
, von generiert es abgeleitete KlasseC
, die nur die Methodefoo
implementiert wurde. Welche Änderungen müssen in dem Skript nehmen, um es funktioniert, während der Implementierung und Schnittstellenklassen A zu machen und C nicht
abstract class A {
abstract public function foo();
abstract public function bar();
}
class C extends A {
public function foo() {
// some code
}
}
geändert werden soll, ich sagte: okay wir können einfach eine Methode, um unsere C
Klasse hinzufügen
public function bar() {
//
}
sie sagte, dies in Ordnung ist, aber was ist, wenn Sie diese Methode nicht hinzufügen können, und Sie können nicht abstrakte Klasse ändern A
(und seine Methoden).
Und es gibt zwei Möglichkeiten, entweder meine Interviewer sind Narr oder ich bin Narr und etwas fehlt.
I php.net
Dokumentation über abstrakte Klassen gelesen haben und ich keine andere Lösung sehen (natürlich kann ich Klasse machen A
nicht abstrakt oder abstract modifier
von bar
Methode entfernen, aber ich darf nicht tun).
Hilf mir bitte, denn diese Frage lässt mich nicht schlafen!
Sie dürfen nichts in den 2 Klassen ändern, dann wie können Sie es beheben? Ihr Interviewer ist ein Werkzeug, da der obige Code immer einen schwerwiegenden Fehler zurückgibt. Das einzige, was einem einfällt, ist, dass "C" auch eine abstrakte Klasse ist, aber das kannst du nicht tun, denke ich? – Daan