継承とGeneric Programming
1.継承
1-1. 継承とは?
サブクラスextends親
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
Non-Primitive Type
wrapping unwrapping
Javaはコンパイラによって自動的に起動されることが多い.
2-2. 抽象クラス、インタフェース
A.抽象類
B.インタフェース
極端抽象クラスと呼ばれるのは分かりやすい.
抽象メソッドのみを持つ純粋な抽象クラス
C. Interface vs Abstract Class
Javaは1つのクラスが複数の継承を拡張することを許さず、複数のインタフェースを実現することを許可する.
3. Generic Programming
3-1 Generic Programmingとは?
JENICプログラミングは、1つの値が複数の異なるデータ型を有することができる技術に重点を置き、再利用性を向上させるプログラミング方式である.
Reference
この問題について(継承とGeneric Programming), 我々は、より多くの情報をここで見つけました https://velog.io/@juxn183/상속과-Generic-Programmingテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol