< Java基本文法

  • クラスとは、サブルーティーン群を論理的にフォルダにまとめて整合整理するための仕組み
  • フォルダ1 (SuperClass) -> フォルダ2 (SuperClass) -> SubClassファイル群と階層整理ができる
  • さらに、Interfaceクラスを使ってそのクラスの仕様や概要を明示し、しかもコントロールできる
  • 階層整理をすると各クラス群の役割状況、ポリモやメソッド等の使い回し状況などが俯瞰できる
  • この本質を知っていれば「継承」だの「親子関係」だの、分かりづらいノイズ概念は不要になる

クラスヒエラルキー

1. インターフェース

  • フィールドには自動的に「public static final」が付き定数になる
  • メソッドには自動的に「public abstract」が付く
  • 「default」を付ければデフォルトメソッドを定義できる(Java8から)

2. スーパークラス

  • implementsでインターフェースを使い回せる
  • 同名メソッドで、インターフェースのデフォルトメソッドをオーバーライドできる
  • 「abstract」が付いたクラスはnewできなくなり、使い回し専用クラスになる
  • 「final」が付いたクラスはextendsできなくなり、完成品クラスとなる
  • 「final」が付いたメソッドはサブでオーバーライドできない

3. サブクラス

  • extendsでスーパークラスを使い回せる
  • 同名メソッドで、スーパークラスのメソッドをオーバーライドできる
  • オーバーライドしていても「super」でスーパークラスのメソッドにアクセスできる

その他の機能

  • 所属フォルダ単位で処理を一括適用できる。ポリモーフィズム
  • シグニチャが違えば1つのクラスに同名メソッドを幾つでも定義できる。オーバーロード