국비

[ 15일차 55~58 ] 수업 정리 - 자바

설매향 2025. 5. 2. 14:57
반응형

✅ 1. 클래스 상속 기본 (ch07.sec02)

📌 Phone → SmartPhone 클래스 상속

  • SmartPhone은 Phone의 모든 필드/메서드를 상속받음
  • this.model, this.color 직접 초기화 가능
public class SmartPhone extends Phone {
    boolean wifi;
    void setWifi(...) {...}
    void internet() {...}
}

📌 사용 예

phone.bell();  // 상속받은 메서드
phone.internet();  // SmartPhone 메서드

✅ 2. 부모 생성자 호출 (super) (ch07.sec03.exam01)

  • 부모 클래스에 매개변수 생성자만 존재할 경우, 자식 클래스에서 super(...)로 반드시 호출해야 함
public class SmartPhone extends Phone {
    public SmartPhone(String model, String color) {
        super(model, color);  // 부모 생성자 호출
    }
}
  • 출력 순서:
Phone() 생성자 실행
SmartPhone() 생성자 실행됨

✅ 3. 메서드 오버라이딩 (ch07.sec04.exam01)

📌 부모 메서드를 자식이 재정의

public class Computer extends Calculator {
    @Override
    public double areaCircle(double r) {
        return Math.PI * r * r;
    }
}
  • 부모 객체로 호출 시 → 부모 메서드 실행
  • 자식 객체로 호출 시 → 자식 메서드 실행

✅ 4. super 키워드 활용 & 비행기 예제 (ch07.sec04.exam02)

  • Airplane → SupersonicAirplane 클래스 상속
  • fly() 메서드를 오버라이딩하여 조건 분기
public void fly() {
    if (flyMode == SUPERSONIC)
        System.out.println("초음속 비행합니다.");
    else
        super.fly();  // 부모 메서드 호출
}

📌 실행 결과 예시

이륙합니다.
일반 비행합니다.
초음속 비행합니다.
일반 비행합니다.
착륙합니다.

📌 15일차 핵심 요약

개념 설명
상속 (extends) 부모 클래스의 필드와 메서드를 자식이 물려받음
super() 부모 생성자 호출 시 사용 (생성자 첫 줄 필수)
메서드 오버라이딩 부모 메서드를 자식이 재정의
super.메서드() 오버라이딩된 메서드 내부에서 부모의 원본 메서드 호출
상속 예제 스마트폰, 컴퓨터, 초음속 비행기 등 실습 포함