해나아부지 개발일지

인터페이스와 추상클래스 본문

Developers/JAVA Spring

인터페이스와 추상클래스

__APPA 2021. 3. 17. 15:09

인터페이스

가이드라인 또는 규격

 

USB 포트에 연결할 수 있는 기기는 하드디스크, 메모리스틱, 디지털카메라 등등 무척 많다.

바로 이 USB포트가 물리적 세계의 인터페이스라고 할 수 있다.

USB포트의 규격을 따르는 기기는 모두 컴퓨터에 연결할 수 있다. 컴퓨터는 USB 포트만 제공하고 어떤 기기가 만들어지는 지 신경 쓸 필요가 없다. 바로 이 점이 인터페이스의 핵심이다.

 

인터페이스란? 극단적으로 동일한 목적 하에 동일한 기능을 보장하게 하기 위함!

어떻게? 자바의 다형성을 이용하여  개발코드 수정을 줄이고 유지보수성을 높인다!

 

* 다형성 : 같은 기능인데 다른 결과가 나올 수 있음

 

상수 : 인터페이스에서 값을 정해줄테니 함부로 바꾸지 말고 제공해주는 값만 참조해라 (절대적)

추상메소드 : 가이드만 줄테니 추상메소드를 오버라이팅해서 재구현해라. (강제적)

디폴트메소드 : 인터페이스에서 기본적으로 제공해주지만, 맘에 안들면 각자 구현해서 써라. (선택적)

정적메소드 : 인터페이스에서 제공해주는 것으로 무조건 사용 (절대적)

 

적절한 인터페이스 구현은 클래스간 의존도를 낮춰 독립적인 클래스를 만들어 준다. 

 

추상클래스

실체 클래스들의 공통의 필드와 메서드 등을 뽑아서 만들어 논 클래스

갤럭시나 아이폰이나 액정과 메인보드 배터리가 공통적으로 들어가야 한다. 스마트폰이라는 추상 클래스에 이러한 공통의 요소를 묶어 구성한다.

 

1. 추상 클래스는 실체 클래스의 공통적인 요소를 추출하여 생성

2. 추상 클래스이기 때문에 객체를 생성할 수 없음

3. 추상 클래스와 실체 클래스는 상속관계

 

1. 양식을 통일하여 유지보수성을 높인다

2. 실체 클래스 구현시 시간이 절약된다

3. 규격 안에서 자유롭게 실체 클래스 구현

 

출처

점프 투 자바 - 인터페이스

Limky 삽질블로그 - 이 글 하나로 인터페이스를 박살내자

Limky 삽질블로그 - 추상클래스

'Developers > JAVA Spring' 카테고리의 다른 글

아파치 톰캣으로 메이븐 프로젝트 배포하기(Linux)  (0) 2021.04.21
다시 Java  (0) 2021.03.05
Comments