본문 바로가기

Language/Java 기본

인터페이스

『 인터페이스 』

 

-클래스들이 구현해야 하는 공통되는 기능들을 미리지정

 

- 작업 명세서, 프로젝트 설계도

 

- 기능만 정의함으로써 구현 객체의 같은 동작 보장 (구현강제)

 

 

인터페이스는 개발자와 각각 다른 객체나 프로그램들의 

공통된 특징을 모아 공통된 인터페이스로 기술함.

예를들어, 마리아 DB, mariaDB, Oracle 모두 DB Connection 으로 접속 가능함.

 

public interface 인터페이스 이름{

   public static final 자료형 변수명 = 변수값; // final키워드를 선언해서 상수만 선언 가능. // 절대 변하면 안되는 값

   public abstract 반환자료형 메서드명(매개변수); // 인터페이스 추상메서드가 들어갈 수 있다. 

} 인터페이스 안에는 무조건 추상메서드가 들어가게 되므로, public void 와 같이 생략이 가능하다

 

 

 

『 추상 클래스와 인터페이스의 차이 』

 

- 하나의 클래스가 여러개의 인터페이스를 구현할 수 있다. (다중 구현)

- 추상 클래스는 다중상속이 불가능 하다.

 

ex : class A implements l1, l2 {}

 

- 인터페이스끼리도 상속이 가능하다.

ex : interface l4 extends l3 { void z()}

     interface implements l4{void z()}

 

추상클래스 : IS -A // ~이다.  

[구분을 할 때 사용]

 

인터페이스 : HAS -A // ~을 할 수 있는. = ~을 할 수 있는 기능의 틀

[기능을 할 때 사용]

 

공통점 : 추상 메서드 사용 =  재사용도 증가

 

따라서, 해당 클래스의 구분을 추상클래스 상속을 통해 해결하며 할 수 있는 기능을 인터페이스로 구현한다.

 

ex : 생명체 - 동물 - 비둘기 / 비행      

                  ㅣ- 거북이 / 수영

 

빨간색은 인터페이스, 초록색은 추상화 클래스, 직사각형은 실체화 클래스이다.

 

 

 

interface

'Language > Java 기본' 카테고리의 다른 글

GUI 2  (0) 2021.01.14
GUI  (0) 2021.01.14
JDBC 1  (0) 2021.01.11
상속과 다형성, 오버라이딩  (0) 2021.01.09
생성자 및 접근제한자  (0) 2021.01.08