본문 바로가기

반응형

✅ 1. 다중 인터페이스 구현

  • SmartTelevision 클래스는 RemoteControl, Searchable 두 인터페이스를 동시에 구현
  • 인터페이스 타입에 따라 기능을 다르게 사용할 수 있음
RemoteControl rc = new SmartTelevision();
rc.turnOn();
rc.turnOff();

Searchable searchable = new SmartTelevision();
searchable.search("https://...");

✅ 2. 인터페이스 다중 상속

  • 인터페이스는 다른 인터페이스를 여러 개 상속 가능
  • 하위 인터페이스를 구현하면 상위 인터페이스 메서드도 함께 구현해야 함
public interface InterfaceC extends InterfaceA, InterfaceB {
    void methodC();
}

✅ 3. 인터페이스 타입 변환

  • 인터페이스 타입 변수에 다양한 구현 클래스 객체를 대입 가능
  • 자식 클래스 객체를 부모 인터페이스 타입으로 자동 변환
A a = new B(); // OK
a = new C();   // OK
a = new D();   // OK
a = new E();   // OK

✅ 4. 강제 타입 변환 (Casting)

  • 인터페이스로 참조된 객체를 다시 원래 구현 클래스로 변환 가능
Vehicle vehicle = new Bus();     // 자동 타입 변환
Bus bus = (Bus) vehicle;         // 강제 타입 변환
bus.checkFare();                 // Bus 고유 메서드 호출 가능

✅ 5. 다형성: 필드 활용 (Tire, Car)

  • Car 클래스가 Tire 타입 필드로 HankookTire 또는 KumhoTire를 대입해 다르게 동작
car.tire1 = new HankookTire();
car.tire2 = new KumhoTire();
car.run();

✅ 6. 다형성: 매개변수 활용 (Driver, Vehicle)

  • Vehicle 인터페이스를 구현한 Bus, Texi를 Driver 클래스에 전달
Driver driver = new Driver();
driver.drive(new Bus());
driver.drive(new Texi());

📌 18일차 핵심 요약

항목 설명
다중 인터페이스 구현 하나의 클래스가 여러 인터페이스를 동시에 구현 가능
인터페이스 상속 인터페이스는 다른 인터페이스들을 다중 상속 가능
타입 변환 인터페이스 ↔ 구현 클래스 간 변환 가능 (자동 & 강제)
다형성 활용 필드, 매개변수, 변수에 다양한 구현체 대입하여 유연한 코드 구현
실행 시점 결정 오버라이딩된 실제 객체의 메서드가 실행됨
댓글