LoginSignup
0
0

java クラス 継承

Posted at

継承

あるクラスの機能を引き継ぎながら新しいクラスを定義すること
元のクラスを「親クラス」「スーパークラス」などと呼び、新たに定義されるクラスを「子クラス」「サブクラス」という

継承関係の表現方法

627c7833da2b4a25ebd6adbece2a28ae.png

1つのクラスをベースとして、複数の子クラスを定義することもできる。孫クラス、ひ孫クラスの定義もできる。
多重継承(複数のクラスを親として1つの子クラスを定義すること)はできない。

継承を用いたクラスの定義

public class クラス名 extends 元となるクラス名 {
 親クラスとの差分となるメンバ
}

オーバーライド

親クラスを継承して子クラスを宣言するさい、親クラスのメンバを子クラス側で上書きすること

Animal.java
public class Animal {
 void sound() {
  System.out.println("動物の鳴き声");
 }
}
Cat.java
public class Cat extends  Animal {
 void sound() {
  System.out.println("ニャーニャー");
 }
}
Main.java
public class Main{
 public static void main(String[] args) {
  Animal animal = new Animal();
  animal.sound();
  Cat cat = new Cat();
  cat.sound();
 }
}
結果.
動物の鳴き声
ニャーニャー

親クラスにあれば上書きされ、なければ追加される

継承やオーバーライドの禁止

final がついているクラスは継承できない
String クラスも継承できない
 JavaのAPIにリファレンス下記のように表現されているため(finalの記載)

public final class String extends object...

親クラスのメンバへのアクセス

直接子クラス内から親クラスへのメンバを利用する。
super を使用する

親インスタンス部分のフィールドの利用

super.フィールド名

親インスタンス部分のメソッドを呼び出す

super.メソッド名(引数)

親クラスのコントラクタの呼び出し

super(引数)

is-aの関係

子クラスは is-a 親クラス(子クラスは、親クラスの一種)

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0