interface란?
Java에서 abstract, final과 함께 대표적인 규제이며 Java가 추상화를 위해 제공하는 가장 유용한 도구이다.
어떤 클래스가 있고 그 클래스가 특정한 인터페이스를 사용한다면 그 클래스는 반드시 사용한 인터페이스의 메소드들을 구현해야 한다.
만약 인터페이스에서 강제하고 있는 메소드들을 구현하지 않으면 컴파일 조차 되지 않는다.
interface 규칙
- 인터페이스에 정의되는 멤버들의 접근제어자는 public이다.
- 하나의 클래스는 복수개의 인터페이스를 구현할 수 있다.
- 인터페이스 상속이 가능하다.
- 인터페이스는 어떤 일을 하겠다는 기능만 정의해 놓는다. 인터페이스에는 어떻게 하겠다는 구현 방법은 나타나 있지 않다. 그것은 인터페이스를 구현한 클래스들이 알아서 결정할 일이다.
클래스 A 뒤의 implements I는 이 클래스가 인터페이스 I를 구현하고 있다는 의미다. 그것은 3행의 interface I의 멤버인 public void z() 메소드를 클래스 A가 반드시 포함하고 있어야 한다는 뜻이다.
인터페이스와 상속은 다르다. 상속이 상위 클래스의 기능을 하위 클래스가 물려받는 것이라고 한다면, 인터페이스는 하위 클래스에 특정한 메소드가 반드시 존재하도록 강제한다.
interface와 abstract 차이
인터페이스와 추상 클래스는 서로 비슷한 듯 다른 기능이다. 인터페이스는 클래스가 아닌 인터페이스라는 고유한 형태를 가지고 있는 반면 추상 클래스는 일반적인 클래스다. 또 인터페이스는 구체적인 로직이나 상태를 가지고 있을 수 없고, 추상 클래스는 구체적인 로직이나 상태를 가지고 있을 수 있다.
interface 실질적인 쓰임 : https://opentutorials.org/course/1223/6063
위 내용은 생활코딩 강의와 토비의 스프링 내용을 정리한 것이다.
'Java' 카테고리의 다른 글
Java abstract 자바 추상클래스 추상 메서드 (0) | 2019.06.10 |
---|---|
Java 접근제어자 (public, protected, default, private) (0) | 2019.06.10 |
객체 지향 프로그래밍(Object Oriented Programming, OOP) (0) | 2019.05.28 |
Java 자바 JVM, JRE, JDK (0) | 2019.05.24 |
Java Method Signature 자바 메서드 시그니처 (0) | 2019.05.23 |