반응형
인터페이스의 개념
인터페이스는 추상 클래스와 마찬가지로 직접 인스턴스를 생성할 수 없다는 특징을 가지고 있다.
또, 인터페이스는 일반 메서드와 생성자를 가질 수 없고, 필드 또한 static final을 붙인 상수화된 필드만 사용할 수 있으며 반드시 초기화를 해야 한다는 특징이 있다.
interface 인터페이스명 {
static final 필드 및 추상 메서드 정의
}
인터페이스는 코드로 보면 이런 형식을 가지고 있고 추상 클래스와 비슷하지만 다중 상속을 위해 사용하기도 한다. 또, 인터페이스는 상속을 받기 위해 extends 대신에 implements 키워드를 사용한다.
interface TestCarSetting {
static final int CAR_COUNT = 0;
abstract void work();
}
먼저 interface를 생성해 주었고 static final로 변수를 고정시키고 abstract를 통해 work()를 추상 메서드로 지정해 주었다.
class TestSedan implements TestCarSetting {
public void work() {
System.out.println("승용차가 사람을 태우고 있다.");
}
}
TestSedan 클래스에서 implements를 통해 TestCarSetting 인터페이스를 상속 받았고 추상 메서드인 work()를 오버라이딩해서 사용해 준다.
class TestTruck implements TestCarSetting {
public void work() {
System.out.println("트럭이 짐을 싣고 있다.");
}
}
마찬가지로 인터페이스를 상속 받아 구현해 준다.
public class TestCar {
public static void main(String[] args) {
TestSedan testSedan = new TestSedan();
testSedan.work();
TestTruck testTruck = new TestTruck();
testTruck.work();
}
}
각 클래스의 인스턴스를 생성해주고 실행을 해보면
이처럼 정상적으로 인스턴스 생성이 완료된 것을 확인할 수 있다.
반응형
'프로그래밍언어 > Java' 카테고리의 다른 글
[Java] : 추상 클래스, abstract class란? (0) | 2022.01.17 |
---|---|
[Java] : 오버라이딩을 제한하는 final (0) | 2022.01.17 |
[Java] : method overriding (0) | 2022.01.17 |
[Java] : 상속을 허용하는 protected (0) | 2022.01.17 |
[Java] : 상속을 제한하는 private (0) | 2022.01.17 |
댓글