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
'JAVA > 객체지향 프로그래밍 (OOP) 기초' 카테고리의 다른 글
부모 타입으로 자식 객체 다루기 (0) | 2025.04.13 |
---|---|
오버라이딩 개념 (0) | 2025.04.13 |
인스턴스 메서드 vs 클래스(static) 메서드 (0) | 2025.04.13 |
생성자의 개념 및 오버로딩 (0) | 2025.04.12 |
this 키워드 (0) | 2025.04.12 |