티스토리 뷰
728x90
반응형
추상클래스 (Abstract Class)
- 추상메서드가 없거나 선언된 클래스
- 인스턴스를 생성할 수 없다.
- 자손클래스마다 다르게 구현될 것으로 예상되는 메서드를 추상메서드 선언
- 추상클래스를 상속받는 자손클래스에서 추상메서드를 구현
- 단일상속
- is a kind of
인터페이스 (Interface)
- 추상메서드, 상수, defalut method만 선언 (생성자 X, 접근제한자 private, protected X)
- 인스턴스를 생성할 수 없고, 클래스 작성에 도움을 줄 목적
- 정해진 목적에 맞게 구현하도록 표준을 제시하는데 사용
- 서로 관련이 없는 클래스에서 공통적으로 사용하는 방식이 필요하지만 기능을 각각 구현
- 다중상속
- can do this
인터페이스를 이용한 다형성
- 인터페이스 타입의 변수로 자손클래스의 인스턴스를 참조할 수 있다.
List list = ArrayList<>();
- 인터페이스를 메서드의 매개변수 타입으로 지정할 수 있다.
public void method(List list){}
- 인터페이스를 메서드의 리턴타입으로 지정할 수 있다.
public List method(){ return new ArrayList<>(); }
default Method
- 인터페이스에서 구현할 수 있는 메서드
- 구현 클래스에서 디폴트 메서드를 상속받거나 오버라이딩 가능
- 인터페이스가 변경되면 모든 구현 클래스도 변경해야 했던 문제를 해결
public default int method(int a, int b){
return a+b;
}
static Method
- 인터페이스를 이용하여 간단한 기능을 가지는 유틸리티성 메서드
- 인터페이스명.메소드 형식으로 호출
- 구현 클래스에서 오버라이딩 불가능
public static int method(int a, int b){
return a*b;
}
인터페이스의 장점
- 개발시간을 단축시킬 수 있다.
- 표준화가 가능하다.
- 서로 관계없는 클래스들에게 관계를 맺어 줄 수 있다.
- 독립적인 프로그래밍이 가능하다.
728x90
반응형
'Java' 카테고리의 다른 글
추상클래스 - 템플릿 메서드 (0) | 2020.09.03 |
---|---|
에러 vs 예외 (0) | 2020.05.19 |
[Java] Reflection (0) | 2020.04.01 |
Multi Threads Race Condition (0) | 2020.03.19 |
Arrays binarySearch() vs HashMap (0) | 2020.02.14 |
반응형
300x250