Notice
Recent Posts
Recent Comments
Link
YTCW
java 인터페이스, interface 본문
인터페이스
객체가 어떤 방식으로 동작해야 하는지를 정의하는 추상 타입이다.
추상 메서드와 상수만으로 구성된 특수한 클래스인데
모든 메서드가 추상 메서드인 추상 클래스와 유사
객체의 기능을 정의하고 실체 구현은 인터페이스를 구현하는 클래스에서 담당하게된다.
인터페이스의 필요성 같은 경우에는
서로 다른 클래스에 대해 공통된 동작을 보장할때 필요하고
여러 인터페이스를 동시에 구현이 가능하다.
한 클래스에 대해 여러개의 인터페이스 구현이 가능하다.
추상 클래스와 인터페이스 공통점
하나 이상의 추상 메서드를 포함
추상 클래스와 인터페이스 차이점
인터페이스는 다중 상속이 가능하다, 추상 클래스는 불가하다
맴버 변수
메서드
모든 메서드는 추상 메서드여야하고
해당 인터페이스의 활용을 위해 모든 클래스에서 접근 가능하다.
package chapter09;
//인터페이스 멤버 변수 정의
//: public, static, final 특성 가짐
interface ExampleInterface {
int EXAMPLE_VARIABLE = 10; // public, static, final
void printVar();
default void method() {
System.out.println("interface1");
}
}
//다중 인터페이스 구현
//: 클래스는 여러 개의 인터페이스 구현이 가능 (둘 이상의 타입으로 동작 가능)
interface ExampleInterface2 {
void printVar2();
default void method() {
System.out.println("interface2");
}
}
//다중 인터페이스 사용 방법은 (,)로 구분하여 나열
//주의 사항
//: 두 인터페이스에 같은 시그니처(같은 선언부)를 가진 메서드가 존재한다면
//: 선언이 같고 구현이 다른 메서드가 충돌
//: >> 해당 클래스는 반드시 재정의 해야 함
class ExampleClass implements ExampleInterface, ExampleInterface2 {
public void printVar() {
System.out.println(EXAMPLE_VARIABLE);
}
public void printVar2() {
System.out.println("다중 인터페이스 구현");
}
@Override
public void method() {
System.out.println("Method, 중복되는 디폴드 메서드");
}
}
//public : 모든 곳에서 접근 가능
//static : 인스턴스화 없이 인터페이스 이름을 통해 접근 가능
//final : 한 번 할당되면 값을 변경할 수 없음
//인터페이스에서의 다형성
//: 인터페이스를 구현한 클래스의 객체는 인터페이스 타입을 가질 수 있다.
public class D_Interface {
public static void main(String[] args) {
ExampleClass exClass = new ExampleClass();
exClass.printVar();
exClass.method();
ExampleInterface exInterface = exClass;
exInterface.printVar();
// 다형성은 앞에 것들을 다 이해하고 복습하기
}
}
'java' 카테고리의 다른 글
java.lang (0) | 2024.09.09 |
---|---|
java 예외처리, exception (3) | 2024.09.09 |
java 추상, abstract (0) | 2024.09.09 |
java 다형성 (0) | 2024.09.09 |
java 자료형 변환 (0) | 2024.09.09 |