Contents
메서드 오버라이딩(Method Overriding)메서드 오버라이딩(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(); } }
위와 같은 코드가 있다.
고양이 클래스는 동물 클래스를 상속 받는다. 동물 클래스의 메서드는 울음과 달리기가 있다.
고양이 클래스는 동물 메서드를 이용하고 싶지만 “멍멍” 이라는 울음소리 대신 “ 야옹” 이라는 울음소리를 이용하고 싶다. 이럴때 이용하는 것이 메서드 오버라이딩( 재정의 ) 이다.
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(); } }
메서드 오버라이딩은 부모 클래스와 자식 클래스의 메서드가 완벽히 일치해야 한다. 이름, 매개변수 등이 다르면 오버라이딩이 아니라 오버로딩된다..
오버라이딩을 했을 때 부모 메서드를 호출을 원한다면 super를 이용하자
super.speak();
Share article