[Java] Abstraction
Abstract Class
エンティティークラスの設計仕様
抽象化
あるいは、オブジェクト間の共通属性
抽象クラス
extends
)定義
抽象メソッド
抽象クラスの実装
クラス宣言の
abstract
キーワードpublic abstract class 클래스명 {
// 필드
// 생성자
// 메서드 (ex/ public abstract void hello();)
}
抽象クラスの継承
extends
キーワードの使用抽象クラスを継承するクラスは、抽象クラスで抽象メソッドを実装する必要があります.
❗overrideは必須ですので、いくつかの機能を強制的に実装する場合があります
活用する
複数のクラスには多くの共通点がありますが、それらの処理方法はそれぞれ異なります.
親クラスを抽象クラスとして定義し、子クラスを別々に実装する方法
Interface
クラス構造の影響を受けずにクラスで実装できる「ルール」
使用目的
継承関係にかかわらず、似たような約束が適用されます.
活用する
instanceof
により特定のオブジェクトを識別することができるインタフェース実装
public interface 인터페이스명 {
// 추상메소드 선언 (abstract 키워드를 지정하지 않아도 됨)
}
public class Point implements 인터페이스명 {
// 추상메소드 구현 (Ovrride)
}
implements
public class Point implements Drawable, Resizeable, ... {
...
}
Abstract Class vs. Interface
抽象クラスセット定義汎用フィールドとメソッドの継承と実装(縦方向拡張)
インタフェースにより、自然継承関係を破壊することなく、追加コンテンツの管理(横方向拡張)が可能になります.
一般クラスvs抽象クラスvsインタフェース
*エンティティメソッド
・方法の実施を含む従来の方法
-抽象的アプローチとは逆の概念
継承+実装
class 클래스명 extends 부모클래스 implements 인터페이스, ... { }
Reference
この問題について([Java] Abstraction), 我々は、より多くの情報をここで見つけました https://velog.io/@98kimjh/Java-Abstractionテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol