これらのクラスからオブジェクトを作成するときに、ポリモーフィズムやクラスの拡張などがJavaでどのように機能するかについて、私は少し混乱しています。
私は最近、ここの誰かが解決するのを手伝ってくれた問題を抱えていました (オブジェクト サブクラスの変数にアクセスできませんか? (Java / Android)を参照)。
私は次のようなオブジェクトを作成しようとしていました:
Quad hero = new Hero();
Hero は Quad(); のサブクラスでした。
Hero クラスには、アクセスできない変数がありました。
解決策は、オブジェクトの作成を次のように変更することでした。
Hero hero = new Hero();
これを行うと、ヒーロー オブジェクトを介して、Quad クラスと Hero クラスの両方のすべてのメソッドと変数にアクセスできました。
私の質問は今です - これはなぜですか?
そして、これを念頭に置いて、いつ私の元の方法を使用すると便利でしょうか:
Quad hero = new Hero();
ヒーローもクワッドなので、それは私には理にかなっています。このタイプの宣言は、Java コードの例で何度も見たことがあり、理解していると思っていましたが、最近の出来事でそうではないことが証明されました。
誰かが私のためにこれを説明できればありがたいです - ありがとう