inblog logo
|
DailyCoding
    JAVA

    21. 오버라이딩(Overriding)

    박은서's avatar
    박은서
    Jan 01, 2026
    21. 오버라이딩(Overriding)
    Contents
    1. 오버라이딩(Overriding)1️⃣ 오버라이딩이란?2️⃣ 오버라이딩 기본 조건(핵심)3️⃣ 예제4️⃣ 실습

    1. 오버라이딩(Overriding)

    교재 p.

    1️⃣ 오버라이딩이란?

    상속 관계에서 부모 클래스의 메서드를 자식 클래스에서 재정의하는 것
    부모의 메서드를 무효화
    override : 무시하다

    2️⃣ 오버라이딩 기본 조건(핵심)

    항목
    조건
    상속 관계
    ⭕
    메서드 이름
    동일
    매개변수
    동일
    반환 타입
    같거나 하위
    접근 제한자
    같거나 더 넓게
    ➡️ 모든 조건을 반드시 만족해야 함

    ❌ 오버라이딩 불가한 경우

    • static 메서드
    • final 메서드
    • private 메서드

    3️⃣ 예제

    class Animal { void sound() { System.out.println("동물 소리"); } } class Dog extends Animal { @Override void sound() { System.out.println("멍멍"); } }
    Animal a = new Dog(); a.sound(); // 멍멍
    ➡️ 동적바인딩(메서드가 어느 클래스의 것이 실행될지 ‘실행 시점’에 결정됨)

    4️⃣ 실습

    package ex06.ch02; class Car { void run(){ } } class Morning extends Car { void run(){ System.out.println("모닝 달린다."); } } class Sonata extends Car { // 부모의 메서드를 재정의하면 // 자식이 부모의 메서드를 오버라이드한다. // 오버라이드 : 무시하고 대신한다. void run(){ System.out.println("소나타 달린다."); } } public class ExMeh01 { public static void main(String[] args) { Morning a1 = new Morning(); // [Morning(v), Car] a1.run(); // "모닝 달린다." 출력 Car a2 = new Sonata(); a2.run(); // "소나타 달린다." 출력 } }
    추상화로 타입을 일치시키면 자식의 상태 접근이 안됨
    오버라이드를 통해서 부모를 바라봐도 자식의 상태에 간접적으로 접근할 수 있음(getter, setter)
    추상클래스(abstract class), 추상메서드(abstract + 메서드)
     
    Share article
    Contents
    1. 오버라이딩(Overriding)1️⃣ 오버라이딩이란?2️⃣ 오버라이딩 기본 조건(핵심)3️⃣ 예제4️⃣ 실습

    DailyCoding

    RSS·Powered by Inblog