[Java] 상속_오버라이드

우혜지·2023년 2월 23일
0
  • 객체지향은 중복코드를 없애기 위해서 존재한다. 객체지향적인 방식으로
  • 객체지향적인 구조를 위해서 일부러 중복코드를 허용하는 경우도 있다.
  • 예시
class 오리 {
	void 날다() {
    	System.out.println("오리가 날아갔다.");
    }
}

class 흰오리 extends 오리 {}
class 청둥오리 extends 오리 {} // 흰오리 청둥오리 모두 오리를 부모로 두고 있음
class 고무오리 extends 오리 {
	void 날다() {
    	System.out.println("고무오리는 못날아 ㅠㅠ");
    }
}

이 경우 고무오리도 흰오리, 청둥오리와 마찬가지로 오리를 부모로 두고 있지만

고무오리 a고무오리 = new 고무오리();
a고무오리.날다();
// 출력값 : 고무오리는 못날아 ㅠㅠ

'날다' 의 출력값을 다르게 하고싶은 경우 고무오리 class 안에 날다를 새롭게 지정하면 된다.
부모에 같은 함수가 있으나 고무오리 안에 있는 함수가 우선순위!
이것을 '오버라이드' 라고 한다.

profile
안녕하세요 :)

0개의 댓글