본문 바로가기

반응형

✅ 오전 수업

1. 다형성 with 상속 (Vehicle, Driver)

  • 부모 타입(Vehicle)으로 자식 객체(Bus, Texi)를 다룰 수 있음
  • 오버라이딩된 메서드가 실행됨
driver.drive(new Bus());   // "버스가 달립니다."
driver.drive(new Texi());  // "택시가 달립니다."

2. 추상 클래스 (Phone, Animal)

  • abstract 클래스는 객체 생성 불가, 추상 메서드는 구현 필수
  • 일반 메서드도 가질 수 있음
abstract class Animal {
    void breathe() { ... }
    abstract void sound();
}
  • 다형성 활용:
Animal animal = new Dog();
animal.sound();  // "멍멍"

3. 인터페이스 기본 (RemoteControl)

  • interface는 메서드 선언만 포함
  • 구현 클래스에서 오버라이딩 필수
interface RemoteControl {
    void turnOn();
}
  • 다형성 적용:
RemoteControl rc = new Television();
rc.turnOn();  // "TV를 켭니다."

4. 인터페이스 상수 & 다중 메서드 구현

  • 상수는 모두 public static final
  • 구현 클래스에서 setVolume() 내 볼륨 제한 처리
if(volume > MAX_VOLUME) this.volume = MAX_VOLUME;

✅ 오후 수업

5. default 메서드 (setMute)

  • 인터페이스에서 구현된 기본 메서드
  • 구현 클래스에서 선택적으로 오버라이딩 가능
default void setMute(boolean mute) {
    if (mute) {
        setVolume(MIN_VOLUME);
    } else {
        ...
    }
}​
  • 오버라이딩 예:
@Override
public void setMute(boolean mute) {
    ...
}

6. static 메서드

  • 인터페이스 이름으로 직접 호출
RemoteControl.changeBattery();  // 정적 메서드

7. private 메서드 (Java 9+)

  • default 또는 static 메서드 내부의 중복 코드 정리용
private void defaultCommon() { ... }
private static void staticCommon() { ... }
  • 사용 예:
defaultMethod1() {
    ...
    defaultCommon();
}

📌 17일차 핵심 요약표

개념 설명
다형성 부모 타입으로 자식 객체 처리 가능
추상 클래스 추상 메서드는 구현 필수, 일반 메서드도 포함 가능
인터페이스 구현체에서 메서드 오버라이딩 필수
default 메서드 구현 클래스에서 오버라이딩 가능
static 메서드 인터페이스명으로 직접 호출
private 메서드 중복 코드 정리용 (Java 9+)

 

댓글