クラスの継承
class Parents {
public String fieldA = "field A";
public String methodA() {
return "method A";
}
}
class Child extends Parents {
public String fieldB = "field B";
public String methodB() {
return "method B";
}
}
ChildクラスはParentsクラスのフィールドやメソッドを継承元の親から引き継いで自分自身で定義しているような動作を行える
class Child {
//Parentsクラスをコピーしている
public String fieldA = "field A";
public String methodA() {
return "method A";
}
public String fieldB = "field B";
public String methodB() {
return "method B";
}
}
継承を活用することで、このように共通のデータ(フィールド)や処理(メソッド)を親クラスにまとめて定義することができる
継承の特徴 オーバーライド
子クラスで親クラスと同一のメソッドを定義するとオーバーライド(親クラスのメソッドを子クラスで再定義)できる
// 親クラスのメソッドをオーバーライドする。
@Override
public String methodA() {
return "method A in Child";
}
@Override
メソッドをオーバーライドさせるという使命を持たせることができる
利点
・メソッド名の誤記などを防止できる
・オーバーライドしたつもりができていなかった、といったうっかりミスを事前に防ぐことができ予期せぬバグの防止になります。
その1の結論
・継承とは親クラスのフィールドやメソッドを子クラスで再利用するための便利な方法
参考書籍
すっきりわかるJava入門
メソッドをオーバーライドする時にOverrideアノテーションをつけるべき理由
https://qiita.com/NagaokaKenichi/items/9ee033e218f08aa605a4
is-a関係
継承関係(「である」の関係)を表す言葉です。たとえば、
「動物は生物である」、「哺乳類は動物である」といった表現に使用されます。
たとえばですが、「A is-a B」は「AはB(の一種)である」ことを示します。
is-a関係は、クラス間の関係(継承関係)で上位と発生し、上位となる抽象的なクラスをスーパークラスといい、下位の具体的なクラスをサブクラスといいます。