본문 바로가기
JAVA/객체지향 프로그래밍 (OOP) 기초

extends 키워드로 상속하기

by DEVLIB 2025. 4. 13.
728x90

extends란?

자바에서 한 클래스가 다른 클래스를 상속할 때 사용하는 키워드
자식 클래스가 부모 클래스의 **필드(속성), 메서드(기능)**를 그대로 가져올 수 있음


기본 문법

class 부모클래스 {
    // 속성, 메서드
}

class 자식클래스 extends 부모클래스 {
    // 추가 기능 or 오버라이딩
}

예제: Animal → Dog 상속

부모 클래스

public class Animal {
    String name;

    void eat() {
        System.out.println(name + "가 먹습니다.");
    }
}

자식 클래스

public class Dog extends Animal {
    void bark() {
        System.out.println(name + "가 멍멍 짖습니다!");
    }
}

사용 예

public class Main {
    public static void main(String[] args) {
        Dog d = new Dog();
        d.name = "초코";
        d.eat();   // 부모 메서드 사용
        d.bark();  // 자식 메서드 사용
    }
}

 

출력:

 
초코가 먹습니다.  
초코가 멍멍 짖습니다!

상속의 특징

특징 설명
super 부모 클래스 참조
메서드 오버라이딩 부모 메서드를 자식이 재정의 가능
생성자는 상속되지 않음 자식 생성자에서 super()로 부모 생성자 호출 가능
단일 상속만 지원 자바는 한 클래스만 상속 가능 (extends 하나만)

오버라이딩 예제

class Animal {
    void sound() {
        System.out.println("동물이 소리를 냅니다.");
    }
}

class Dog extends Animal {
    @Override
    void sound() {
        System.out.println("멍멍!");
    }
}
Dog d = new Dog();
d.sound();  // 출력: 멍멍!

마무리 요약

키워드 의미
extends 상속을 나타냄 (자식 → 부모 연결)
super 부모 클래스의 메서드나 생성자 호출
오버라이딩 자식 클래스에서 부모 메서드 재정의
단일 상속 자바는 하나의 부모 클래스만 상속 가능

실습 아이디어

  • Person → Student, Teacher 클래스 상속
  • Vehicle → Car, Bike 클래스 상속 및 오버라이딩
  • super()를 통해 부모 생성자 호출 실습
LIST