実践 Java「継承、実現、インターフェース、抽象クラス、クラスのまとめ」

java

■JavaのSilverの問題で、以下のような実装について出力されていました。
問題の内容とは関係なく、表題の内容が全部出ているなぁと思い。
忘れっぽい自分のために気になる部分をまとめておきたく思います。

【JavaのSilverの設問の一部】
public interface A{}
public abstract class B implements A{}
public class C extends B{}
public class D extends C{}

上記のような絵になります。
インターフェースAを実装した抽象クラスBがあり、その抽象クラスを継承した具象クラスCがあり、さらにそれを継承した具象クラスDとい構成ですね。

■気がついたこと
この場合、CもDもA型として扱えますね。
A[] array = { new c(), new d() } というのはOKということですね。

■インターフェースとは
クラスに含まれるメソッドの具体的な処理内容を記述せず、変数とメソッドの型のみを定義
※これを実装したクラスはこれに従うしかない。
※これのメリットは利用側で、その実態のクラスを意識することなく呼び出すことができる

■抽象クラスとは
抽象メソッドを持つクラスで、インスタンス化できない
※この抽象クラスを継承する具象クラスで抽象メソッドをオーバライドする必要がある
※上記により、実装すべきメソッドを強制することができる

タイトルとURLをコピーしました