목적
사용 목적이 유사한 클래스들의 사용 방법을 통일하여 서로 호환되도록 만드는 것
구현
공통 부모 클래스를 상속(extends) 받거나, 아니면 공통 interface를 구현(implements) 해야 한다.
공통 부모 클래스를 상속(extends) 받은 자식 클래스들은 다형성을 구현하려는 부모 클래스의 메소드들 재정의 해야한다.
공통 interface를 구현(implements) 자식 클래스들은 interface의 모든 메소드를 구현해야 한다.
인터페이스
상속가능하다.
예를 들어 ArrayList 클래스는 List interface에 정의된 메소드들 뿐만 아니라, Collection interface에 정의된 메소드들도 전부 구현했다.
ArrayList 클래스와 LinkedList 클래스는 둘 다 List interface를 구현했기 때문에, List interface의 메소드들을 기준으로 호환된다. ArrayList 클래스와 LinkedList 클래스에는 다형성이 구현되어 있어서 사용 방법이 같다.
즉 ArrayList 클래스와 LinkedList 클래스는 서로 호환된다.
그래서 ArrayList 클래스를 사용하는 소스 코드를 LinkedList 클래스를 사용하도록 수정할 때,
수정해야 하는 소스 코드가 거의 없다.
추상클래스
abstract method가 한 개라도 들어있는 클래스
abstract method: 메소드 본문이 없다.
'Java' 카테고리의 다른 글
Array vs List (0) | 2020.01.15 |
---|---|
Collection Framework (0) | 2020.01.15 |
배열 정렬 (0) | 2020.01.15 |
문자열 클래스 (0) | 2020.01.15 |
Object 클래스 (0) | 2020.01.15 |