ある定義済みのクラスを親とし、親が持つ機能を受け継ぎつつ新しい機能を追加して子クラスを作り出すことを「インヘリタンス」または「継承」と言います。
この親クラスの事を「スーパークラス」や「基底クラス」「基本クラス」などと呼びます。
また子クラスの事を「サブクラス」や「派生クラス」と呼びます。
今回は Java を使ってこのインヘリタンスについて学びましょう。
では早速スーパークラスとして、中身が空の FRUIT スーパークラスが定義されているとします(ソース 1 )。
public class FRUIT { }
この FRUIT スーパークラスを継承して APPLE サブクラスを作るには、クラス名の後に「extends FRUIT」を追加して次のソース 2 の様にします。
public class APPLE extends FRUIT{ // ※ extends FRUIT は FRUIT を継承するの意味 public String name; public APPLE() { name = "りんご"; } public void eat() { System.out.println(name+"美味い"); } }
同様に FRUIT スーパークラスを継承した ORANGE サブクラスも作ってみましょう(ソース 3)。
public class ORANGE extends FRUIT{ // ※ extends FRUIT は FRUIT を継承するの意味 public String name; public ORANGE() { name = "みかん"; } public void eat() { System.out.println(name+"美味い"); } }
さて継承によって作ったサブクラスは、ソース 4 の様に普通のクラスと同様に new を使ってインスタンスを作り利用できます。
public class Main{ public static void main(String[] args) { APPLE apple = new APPLE(); ORANGE orange = new ORANGE(); apple.eat(); orange.eat(); } }
実行結果は次の様になります。
りんご美味い みかん美味い