오버라이드(Override)

Dec 26, 2023
오버라이드(Override)

메서드 오버라이딩(Method Overriding)

 
💡
자식클래스가 부모클래스의 메서드를 필요에 맞추어 재정의 하는 것
 
 
class Animal { void speak() { System.out.println("멍멍"); } void run() { System.out.println("달린다."); } } class Cat extends Animal { } public class AnimalEx01 { public static void main(String[] args) { Cat c1 = new Cat(); c1.speak(); c1.run(); } }
notion image
 
 
위와 같은 코드가 있다.
고양이 클래스는 동물 클래스를 상속 받는다. 동물 클래스의 메서드는 울음과 달리기가 있다.
고양이 클래스는 동물 메서드를 이용하고 싶지만 “멍멍” 이라는 울음소리 대신 “ 야옹” 이라는 울음소리를 이용하고 싶다. 이럴때 이용하는 것이 메서드 오버라이딩( 재정의 ) 이다.
 
class Animal { void speak() { System.out.println("멍멍"); } void run() { System.out.println("달린다."); } } class Cat extends Animal { public void speak() { System.out.println("야옹"); } } public class AnimalEx01 { public static void main(String[] args) { Cat c1 = new Cat(); c1.speak(); c1.run(); } }
notion image
💡
메서드 오버라이딩은 부모 클래스와 자식 클래스의 메서드가 완벽히 일치해야 한다. 이름, 매개변수 등이 다르면 오버라이딩이 아니라 오버로딩된다..
 
오버라이딩을 했을 때 부모 메서드를 호출을 원한다면 super를 이용하자
super.speak();
 
 
 
 
Share article

{CODE-RYU};