개발/JAVA
인터페이스(interface)-JAVA
도비의 양말을 찾아서
2023. 2. 6. 06:13
1. 인터페이스의 특징
- 다중 상속이 가능하게 해준다.
- 추상 메소드와 상수만 선언 가능하다
- 생성자 사용이 불가능하다(객체가 아니기 때문)
- 메서드 오버라이딩이 필수이다.(오버라이딩을 안할 경우 컴파일 단계에서 에러가 발생한다.)
2. 인터페이스 사용하는 이유?
- 자바에서 다중 상속을 가능하게 해준다. 자바는 class를 다중으로 상속하는 것은 불가능하다. diamond problem를 해결하기 위해 자바는 단일 상속만을 원칙으로 한다.
- 코드의 종속성을 낮춰준다.
- 공통으로 필요한 특정 메소드를 인터페이스로 적용한다면, 각각의 메소드를 자유롭게 변경할 수 있다.
3. 인터페이스 예시
- 인터페이스 상속시 "implements" 명령어를 사용
- Mother.java
package org.example;
public interface Mother {
public abstract void love();
}
- Father.java
package org.example;
public interface Father {
public abstract void love();
}
- Child.java
package org.example;
public class Child implements Mother, Father{
@Override
public void love() {
System.out.println("i love you");
}
}
- Main.java
package org.example;
public class Main {
public static void main(String[] args) {
Child child = new Child();
child.love();
}
}