継承とGeneric Programming


1.継承


1-1. 継承とは?


サブクラスextends親
  • 親:Superクラス、Baseクラス、Parentクラス
  • サブクラス:Subクラス、拡張クラス、Childrenクラス
  • 1-2. 受け継ぐ理由は?


    コードの重複を解消できるからです.

    1-3. 継承フィーチャー


    A.ジェネレータ


  • Javaのクラスには少なくとも1つのジェネレータが必要です.
    ジェネレータがない場合はnon-pameterジェネレータが自動的に生成されます.

  • すべてのSubクラスジェネレータは、すべてのSuperクラスジェネレータを呼び出します.
    2-1. super(...)または明示的なコールによって
    2-2. そうでない場合、no-parameterジェネレータが自動的に呼び出されます.
    흔한 오류: Super Class에 no-parameter 생성자가 없는데, 서브클래스의 생성자에서 super(...) 호출을 안해주는 경우
  • B.継承する場合、アクセス制限者に注意する。


    Javaでは、親と子の関係でプライベートアクセス制限子は使用できません.
    保護は可能です.
    <フィールドとメソッドへのアクセス制限>
    アクセス制限ジェネレータはpublicフィールドを記述し、すべてのパケットでフィールドとメソッドを使用して制限を受けません.このクラスのサブクラスでは、保護されたフィールドやメソッドなどのパッケージに属するフィールドとメソッドを使用できます.フィールドとメソッドはdefaultフィールドやメソッドなどのパッケージで使用できます.privateフィールド.メソッドはクラス内でのみ使用できます.

    C. Method Overriding


    親からもらう方法は子供からもらうことができます.superというキーワードを用いて重複データの除去を行うのは優雅な方法である.
    public String toString(){	//자식 클래스에서 Method Overriding 하는 경우
    
    	String result = super.toString() + "~" + "~";
       	return result;
    }

    1-4. たけいせい:ポリマー


    Super Classタイプの変数はSub Classタイプのオブジェクトを参照できます.

    StrongTypingの原則:変数のタイプと変数が格納するデータのタイプは同じでなければならない。


    StrongTypingの強力な例外は多型性です.
    Super Classの変数はSub Classオブジェクトを参照できるからです.

    多形性の変数として利用される方法は誰を呼び出しますか?


    JavaはSubClassメソッドを呼び出します.
    この部分では、さらに勉強する必要がある部分はStatic binding/Dynamic bindingで、後で詳しく整理します.

    2. Class Object


    Object Classは、Java内のすべてのクラスのSuper Classです.
    ( https://docs.oracle.com/javase/8/docs/api/ )
    JavaのすべてのクラスにはequalsメソッドとtoStringメソッドがあります.私が作成しなくても.ただ私の意図通りに働かない.

    2-1. primitive vs non-primitive


    Javaの資料型は大きく分けて2種類あります.Primitiveタイプは基本タイプで、通常提供されるデータ型であり、Non-Primitiveタイプはオブジェクトに関連するデータ型である.
    整数型、小数型、論理型、テキスト型はPrimitive型です.

    Primitive Type

  • btye, short, int, long
  • float, double
  • boolean
  • char
  • Non-Primitive Type

  • Stringなど
  • オブジェクト配列は、任意のタイプのオブジェクトを格納できます.ただしPrimitiveタイプは保存できません.これは対象ではないからです.Primitiveタイプをオブジェクトとして保存する場合は、Wrapper Classを使用する必要があります.(IntegerやBooleanなど)

    wrapping unwrapping



    Javaはコンパイラによって自動的に起動されることが多い.

    2-2. 抽象クラス、インタフェース


    A.抽象類

  • 抽象(抽象)メソッドは宣言のみで実現しなかった.
  • 抽象メソッドを含むクラスは抽象クラスである.
  • 抽象メソッドと抽象クラスはキーワードabstractで表される.
  • 抽象クラスではオブジェクトを作成できません.したがって、サブクラスの作成にのみ使用されます.
  • B.インタフェース


    極端抽象クラスと呼ばれるのは分かりやすい.
    抽象メソッドのみを持つ純粋な抽象クラス
  • 静的finalデータメンバーを持つことができます.(定数)
  • 実装は抽象クラスとインタフェースの違いである.
  • C. Interface vs Abstract Class


    Javaは1つのクラスが複数の継承を拡張することを許さず、複数のインタフェースを実現することを許可する.

    3. Generic Programming


    3-1 Generic Programmingとは?


    JENICプログラミングは、1つの値が複数の異なるデータ型を有することができる技術に重点を置き、再利用性を向上させるプログラミング方式である.
  • GenericはSpecifiedの半語
  • です
  • Generic変数/データ構造
  • Genericハンアルゴリズム(方法)
  • Generic一級