0
私はOOPの私の最初のレベル(私たちはJavaを使用しています)の最終試験のために実際に勉強しています、そして、私はOOPに関して概念的に正しい必要があります。だから、これら2つのサンプルコードのどれがポリモーフィズムを実装していますか?
、私はこのコードを持っている:
Light.turnOn(pc);
Light.turnOn(car);
等...
そして、この他の1を:
pc.turnOn();
car.turnOn();
私はまだ最初のものを実装していません。もう一つは、私が...このようLight
がabstract
クラスです
class pc extends Light { ... }
class car extends Light { ... }
をやりました。それぞれ異なるクラスpc
とcar
はLight
から拡張され、メソッドturnOn()
のそれぞれ独自のバージョンを実装しています。 (まだ実装されていない)最初のサンプルコードでは、 "拡張"することなく、同じクラスのturnOn()
メソッドの異なるバージョンを使用します。
So:2つのコードのどちらが多態性を実装/使用していますか?どうして?どのように他の例では実装/使用していないのですか?
ありがとうございます。
Java命名規則に従ってください。 Light.turnOn(...)は静的メソッド呼び出しを意味し、pc.turnOn()はインスタンスメソッド呼び出しを意味します。しかし、クラス名はpcです。これは混乱し、誤解を招く。 –
私は、この質問は、完全なコードを書いてコーディング規則を尊重した方がより役に立ちそうだと思います。クラスには大文字で始まる名前を付ける必要があります。上書きされるメソッドは表示されず、Light.turnOn(car)をどのようにすべきかは不明です。 "Light"がクラスの場合、これは静的メソッドの呼び出しのように見えます。 – Gustave
あなたの最後に幸運。 –