2017-12-11 5 views
0

私はOOPの私の最初のレベル(私たちはJavaを使用しています)の最終試験のために実際に勉強しています、そして、私はOOPに関して概念的に正しい必要があります。だから、これら2つのサンプルコードのどれがポリモーフィズムを実装していますか?

、私はこのコードを持っている:

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

等...

そして、この他の1を:

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

私はまだ最初のものを実装していません。もう一つは、私が...このようLightabstractクラスです

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

をやりました。それぞれ異なるクラスpccarLightから拡張され、メソッドturnOn()のそれぞれ独自のバージョンを実装しています。 (まだ実装されていない)最初のサンプルコードでは、 "拡張"することなく、同じクラスのturnOn()メソッドの異なるバージョンを使用します。

So:2つのコードのどちらが多態性を実装/使用していますか?どうして?どのように他の例では実装/使用していないのですか?

ありがとうございます。

+1

Java命名規則に従ってください。 Light.turnOn(...)は静的メソッド呼び出しを意味し、pc.turnOn()はインスタンスメソッド呼び出しを意味します。しかし、クラス名はpcです。これは混乱し、誤解を招く。 –

+0

私は、この質問は、完全なコードを書いてコーディング規則を尊重した方がより役に立ちそうだと思います。クラスには大文字で始まる名前を付ける必要があります。上書きされるメソッドは表示されず、Light.turnOn(car)をどのようにすべきかは不明です。 "Light"がクラスの場合、これは静的メソッドの呼び出しのように見えます。 – Gustave

+0

あなたの最後に幸運。 –

答えて

1

第2のものは多型性を指している。

関連する問題