Geschützt abstrakte oder öffentliche abstrakte Methode in der abstrakten Klasse
Hallo ich habe eine abstrakte Klasse, in der ich einige öffentliche Methoden und einige abstrakte diejenigen.
Ich habe die öffentlichkeit so, dass Sie die Anwendung der gängigen Methoden für die abgeleiteten Klassen.
Was ist verwirrend mich ist, warum ich wollen, definieren Sie eine öffentliche abstrakte Methode anstelle von protected abstract. Das macht für mich keinen Sinn zu definieren, der eine öffentliche abstrakte Methode in der abstrakten Klasse.... denn wenn eine abstrakte überschrieben, in der die abgeleitete Klassen, aber das gleiche ist, wenn Sie als public definiert, aber irgendwie macht es mehr Sinn, es zu definieren, wie geschützt, wie wir wissen, wir überschreiben, die in den abgeleiteten Klassen.
Ist es falsch zu definieren, die Methode als public abstract eine abstrakte Klasse? Was ist besser und warum?
InformationsquelleAutor Lyubomir Velchev | 2015-05-21
Du musst angemeldet sein, um einen Kommentar abzugeben.
Aus dem gleichen Grund wollen Sie eine öffentliche Methode in ein Objekt 🙂
Sie wissen nur nicht, die jeweilige Implementierung in dieser Phase.
Es ist üblich, in Klassen mit sehr hohen Ebene der Abstraktion, middlewares zum Beispiel.
Edit: Es ist 100% legal. Sie müssen nur sicher sein, dass es die Funktionalität, die Sie verfügbar machen möchten, um den rest der Welt in jeder konkreten Umsetzung. Entry point Methoden (ex: start, ausführen, analysieren,..) sind in der Regel von dieser Art.
InformationsquelleAutor Sam Aleksov
Es hängt davon ab, was Sie erreichen wollen. Zum Beispiel, Sie haben eine
Television
Klasse mit 3 MethodenTurnOn
,TurnOff
, undDraw
.Wollen Sie nur Kunden zu
TurnOn
oderTurnOff
den Fernseher, sondern nur seinen Unterklasse sollte wissen, was und wieDraw
auf dem Bildschirm. AlsoTelevision
Aussehen wird mehr oder weniger wie folgt.Dann jedes Unternehmen hat seine eigene Implementierung.
Kunden können
TurnOn
oderTurnOff
TV aber nichtDraw
nichts auf dem Bildschirm.InformationsquelleAutor Ekk
Der Abstrakten Klasse selbst ist so zugänglich wie die Klassen, die von Ihr Erben. Also, wenn die vererbten Klassen sind Öffentliche, von der Abstrakten Klasse muss public sein auch.
Public Abstract hat die gleiche Idee wie andere Public-Methoden: Wenn Sie eine Abstrakte Klasse, übergeben Sie diese um. Also, wenn diese Methode sollte aufgerufen werden, von außen, es ist öffentlich. Wenn die Methode ist nur für die Kommunikation zwischen Kind und Eltern, geschützt ist der Weg zu gehen. Einfaches Beispiel, siehe die Main-Methode, da der Benutzer von der abstrakten Klasse:
InformationsquelleAutor Matthias Müller