- 자바 인터페이스(interface) 목차
< interface 인터페이스 >
-interface란 abstract와 final과 함께 대표적인 규제이다.
-인터페이스의 역할은 어떠한 A라는 클래스가 있고 그 A 클래스가 특정한 인터페이스 ( I ) 를 사용한다면 그 클래스(A)는 반드시 사용하는 인터페이스( I )의 메소드를 구현해만 사용할 수 있다.
-한개의 class가 여러개의 interface를 구현할 수 있다.
-반드시 접근 제어자는 public이어야만 한다.
-interface도 상속이 가능하다.
ex) interface A { //인터페이스 A 선언
public void a();
}
interface B extends A { //인터페이스 B 선언과 동시에 인터페이스A를 상속받음
public void b();
}
class C implements B { // class C선언 동시에 인터페이스 B를 구현함.
public void a() { } // interface A에 속한 a()메소드 구현
public void b() { } // interface B에 속한 b()메소드 구현
}
-> interface가 interface를 상속받을 때 = extends
class 가 interface를 구현할 때 = implements
interface 문법
< 인터페이스를 왜 사용하는가 ? >
예로, 계산기 class가 아주 거대하고 복잡하고 많은 사람들이 참여해서 진행하는 프로젝트라고 할때 , 계산기 class를 만드는
개발자가 있고 그 개발자가 만든 계산기class를 사용한 것을 구현하는 B가 있다고 할때,
즉, A개발자 ->계산기 class를 만드는 사람
B개발자 ->계산기 class를 만든 것을 이용해 개발하는 사람
이럴경우 가짜 class를 만드는것이 편리하다.
즉, 공유해서 같이 사용할 수 있는 인터페이스를 구현하는 것이 좋다.
또한 , interface를 선언 후 정의되는 멤버들의 접근 제어자는 반드시 public이어야만 한다
->다른 클래스에서 implements 할때 접근이 가능해야 하므로
class와 interface의 차이점
->class : 한 개의 부모만 가질 수 있으며 한 개의 클래스만 상속받을 수 있다.
-> interface : 한 개의 클래스에서 여러개의 interface를 상속받는 것이 가능하다.
interface와 abstract의 차이점
interface
1.구체화 된 메소드를 가질 수 없지만 코드를 한번 작성해 놓아도 다른곳에서 사용할 때 다시 오버라이드 하여 입맛에 맞게 작성하면 된다.
2. abstract와 다르게 구체적인 로직을 가지고 있는 로직을 interface에 포함시키면 안됨. (반드시 본체가 없어야함 )
abstract
1.일반적인 클래스와 같음 ( 다만 abstract이기 때문에 특정 abstract메소드를 하위 class가 상속 받아 사용하도록 강제하는 것 )
2.하위 class에서 오버라이딩(상속) 하도록 비어있는 내용의 abstract 메소드가 있지만 동시에 실제 구체적인 로직을 가지고 있는
메소드나 OR 필드가 존재할 수 있는 형태
인터페이스는 반드시 본체가 없는 메소드들만을 가지고 있어하는 특징을 가지고있음
인터페이스는 대상이되는 시스템을 제어하기위해 제어할때 사용되는 장치들이다.
'Java' 카테고리의 다른 글
Exception을 직접 발생시키는 방법 (0) | 2018.08.28 |
---|---|
예외처리 finally (0) | 2018.08.21 |
JAVA - 다형성 (polymorphism) (0) | 2018.08.17 |
abstract(추상 클래스)와 interface의 차이점 (0) | 2018.08.17 |
abstract추상화 (1) | 2018.08.17 |