B extends A
宣言があるとします スーパークラス変数A a=new B();
によるサブクラスオブジェクトの参照の使用は何ですか?そして、オブジェクトによってアクセス可能なフィールドとメソッドは何ですか a((子クラスのメソッドと変数のみ) または (子クラスと親クラスの両方から) )?
ありがとう
B extends A
宣言があるとします スーパークラス変数A a=new B();
によるサブクラスオブジェクトの参照の使用は何ですか?そして、オブジェクトによってアクセス可能なフィールドとメソッドは何ですか a((子クラスのメソッドと変数のみ) または (子クラスと親クラスの両方から) )?
ありがとう
その理由は抽象化です。アイデアは、オブジェクトに関するすべての小さな詳細を知る必要がないということです。たとえば、あなたが車を運転しているとします。ほとんどの場合、右側のペダルで加速し、左側のペダルで減速し、前方にある大きな丸いもので車を操縦します。それがどのように起こるかは、ドライバー (別名ユーザー) が知ることは重要ではありませんが、車が実際に動くためには、これらの詳細が適切に機能することが非常に重要です。
したがって、これは主に達成することPolymorphism
ですAbstraction
。
主な原則は、より高いラベルのインターフェイスに対するクライアントのコーディングであり、低レベルの実装について心配する必要はありません。
これにより、クライアントを変更せずに実装を柔軟に変更できます。また、クライアントには、複数の実装を試す柔軟性があります。
あなたの例では、アクセス可能なメンバーは、クラスa
によって定義されたメンバーです。A