본문 바로가기
정리하기 이전 자료 ( before 20-11 )/Java

인터페이스

by IMSfromSeoul 2020. 3. 30.

 모두 Abstract method로 이루어져있다. 인터페이스에 선언한 변수는 모두 상수가 되고, 메서드는 전부 추상 메서드가 된다.

public interface Calc{
	int a = 3; // public static final int a = 3;
    int add(int num1,int num2) // abstract int add()
}

 이 때, int add(int num1,int num2) 을 보면 num1 , num2 를 받아서 두 수를 add 하고 int형으로 돌려줄 것이라는 것을 유추할 수 있다.

 

Interface Vs Abstract class

 

 결론부터 말하자면 인터페이스는 설계도로서의 계약서, 규약('명세(specification' 라고 흔히 말한다)이라고 생각하면 되고, 추상 클래스는 확장을 위한 기본 설계품이라고 생각하면 된다. 

 

추상클래스는 책에서 말하는 is-a 관계가 핵심이다.
쉽게 말하면 만들어야할 여러 클래스들의 공통점을 찾아 추상화시켜서 사용하는 것이 개발에서 이득일 때!
예를들면 냉장고, TV, 커피머신, 전자렌지등의 클래스를 만들어야할 일이 있을 때 가전제품이라는 추상클래스로 추상화 시켜서 사용하면 좋을 때 사용한다. 가전제품의 기본적인 속성엔 제품을 킨다, 끈다 부터 시작해서 공통적인 속성이 많다. 이럴 때 확장의 개념으로 사용한다.
그런데 이 때 자바특성상 다중상속이 불가한 점을 고려해서 사용해야한다.

인터페이스는 구현하는 모든 클래스에 대해 특정한 메서드가 반드시 존재하도록 강제하는 역할이다.
즉 구현 객체가 같은 동작을 한다는 것을 보장하기 위한 목적이다.
인터페이스는 추상 클래스와는 달리 다중 상속이 가능하다.


출처: 
https://jeong-pro.tistory.com/82
 [기본기를 쌓는 정아마추어 코딩블로그]

 

made by 그림판. fastcampus java강의 38강 : 너가 JDBC를 쓰게 하려면 Connection의 이런 부분을 구현을 해. 너 DB에 맞게 구현해놓으면, 가져다가 쓸게.

 

'정리하기 이전 자료 ( before 20-11 ) > Java' 카테고리의 다른 글

인터페이스의 요소들  (0) 2020.04.13
Naming Conventions  (0) 2020.04.06
추상클래스 & 템플릿 메서드  (0) 2020.03.30
DownCasting & instance of  (0) 2020.03.29
상속에서의 생성자  (0) 2020.03.29

댓글