2017-12-11 1 views
0

Ich bin eigentlich für ein abschließendes Examen meiner ersten Ebene der OOP (wir verwenden Java), und ich muss konzeptionell korrekt in Bezug auf OOP sein.Welcher dieser beiden Beispielcodes implementiert Polymorphismus?

So habe ich diesen Code:

Light.turnOn(pc); 
Light.turnOn(car); 

Etc ...

Und das andere:

pc.turnOn(); 
car.turnOn(); 

Ich habe noch nicht die erste umgesetzt. Die zweite, ich habe es so ...

class pc extends Light { ... } 
class car extends Light { ... } 

Wo Light ist ein abstract Klasse. Jede unterschiedliche Klasse, pc und car erstreckt sich von Light und sie implementieren ihre eigene Version der Methode turnOn(), in jedem von ihnen. Im ersten Beispiel-Code (den ich noch nicht implementiert habe), hätte ich verschiedene Versionen der Methode turnOn() (in der gleichen Klasse), ohne "etwas" zu erweitern.

Also: welcher der beiden Codes implementiert/verwendet Polymorphismus? Warum? Wie implementiert das andere Beispiel es nicht?

Vielen Dank im Voraus.

+1

Bitte befolgen Sie die Java-Namenskonventionen. Light.turnOn (...) impliziert einen statischen Methodenaufruf, während pc.turnOn() einen Instanzmethodenaufruf impliziert. Aber der Klassenname ist PC. Dies ist verwirrend und irreführend. –

+0

Ich denke, dass diese Frage nützlicher wäre, wenn Sie einen vollständigen Code schreiben und die Kodierungskonventionen respektieren. Klassen sollten einen Namen haben, der mit einem Großbuchstaben beginnt, Sie zeigen nicht die Methode, die überschrieben wird und es ist unklar, was Light.turnOn (Auto) sein sollte. Wenn "Light" eine Klasse ist, sieht das wie ein Aufruf einer statischen Methode aus. – Gustave

+0

Viel Glück bei Ihrem Finale. –

Antwort

1

zweitens zeigt Polymorphismus.

Verwandte Themen