0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【継承の操作①】クラスの継承

Last updated at Posted at 2024-06-02

はじめに

オラクル認定資格教科書 Javaプログラマ Silver SE8
第一章 Javaの基本 
第二章 Javaのデータ型の操作
第三章 演算子と判定構造の使用
第四章 配列の作成と使用
第五章 ループ構造の使用
第六章 メソッドとカプセル化の操作
第七章 継承の操作← イマココ!!
第八章 例外の処理
第九章 Java APIの主要なクラスの操作

クラスの継承

 継承は、あるクラスを機能拡張した新しいクラスを定義することです。
 拡張元になるクラスのことを基底クラスやスーパークラス、拡張したクラスのことを派生クラスやサブクラスという。

class サブクラス名 extends スーパークラス名 {}

注意点

 1つのサブクラスが継承できるのは1つのスーパークラスのみ。(多重継承不可)
 final修飾子が付いたスーパークラスの継承はできない。
 以下の2点については、クラスを継承しても、引き継げない。
 ・スーパークラス内のコンストラクタ
 ・スーパークラス内のprivate修飾子の付いた変数やメソッド

親クラスのメソッドの呼び出し

 子クラスのインスタンスで、親と子で同名のメソッドを呼び出した場合、子クラスにあるオーバーライドされたメソッドが優先して呼ばれる。
 親クラスの同名メソッドを呼び出す場合は、super.メソッド名()のようにsuperを使用する。

継承とコンストラクタ

  親クラスを継承している子クラスのインスタンスを生成した場合、親クラスのコンストラクタから呼び出さなければならない。
  引数のないコンストラクタであれば、自動でsuper();が追加され、呼び出されるが、引数がある場合は、明示しなければならない。

// 親クラス
public class Parent {
  public Parent {
    System.out.println("親クラスのコンストラクタです");
  }
}

// 子クラス
public class Child {
  public Child {
    System.out.println("子クラスのコンストラクタです");
  }
}

// メインクラス
public class Main {
  public static void main (String[] args) {
    Child c = new Child();
  }
}

// 結果 : 親クラスのコンストラクタです  子クラスのコンストラクタです

抽象クラス

 抽象クラスは抽象メソッドを持つクラスのこと。(具象クラスも一緒に持てる)
 抽象メソッドがある場合、必ず抽象クラスにする必要があり、abstractを使用して宣言する。

public abstract class クラス名 {
}

 抽象クラスはインスタンス化できない
 抽象クラスを継承した場合、抽象クラスに含まれる抽象メソッドを必ず実装(オーバーライド)しなければならない。

抽象メソッド

 現時点で内容が確定できない(処理を持たない)メソッドとして、宣言するのが抽象メソッドである。
 抽象メソッドはabstractを使用して宣言する。

public abstract 戻り値 メソッド名(引数);
// 中カッコ「{}」を付けない

 抽象メソッドを継承先で実装する場合、シグネチャ(引数とそのデータ型の組)は抽象クラスで宣言されたものに合致している必要あり、戻り値型は同じかそのサブクラスである必要がある。。

抽象クラスに抽象クラスを継承

 抽象クラスを具象クラスで継承した場合、すべての抽象メソッドを実装(オーバーライド)しなければならないが、継承先も抽象クラスとした場合、そのルールは適応されない。
 継承先も抽象クラスとする場合は、親抽象クラスの抽象メソッドを実装したり、新しく抽象メソッドを追加することが可能(機能の拡張)となる。
 

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?