単二電池

Javaオブジェクト指向のポリモーフィズムで、

スーパークラスインスタンス変数にはサブクラスインスタンス変数を代入してもコンパイルエラーにはならないから、メソッド名が同じでもオブジェクトを代入して入れ替えるだけで呼び出すメソッドを変えることができるのがポリモーフィズムである、

と習ったのですが、

それならば、インスタンスを宣言するときに子クラス型の変数を宣言するメリットとは何なのでしょうか?

いつもインスタンス宣言時は親クラス型で宣言をすれば良いのではないでしょうか?

以下です。

Player ply1 = new CdPlayer();

Player ply2 = new MdPlayer();

Player ply3 = new DvdPlayer();

A 回答 (1件)

> いつもインスタンス宣言時は親クラス型で宣言をすれば良いのではないでしょうか?



それだと(オーバーライドでなく)子クラス独自で定義したメソッドなどが使えないじゃないですか。


親クラスと子クラスが同じメソッド(含オーバーライド)だけを使用する際には、親クラスの型を使用すると便利です
ってことですよ。
    • good
    • 0
この回答へのお礼

仰る通りでした、どうもありがとうございました。

お礼日時:2019/04/23 08:58

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!