- 상속받고 있는 부모클래스의 메소드를 자식클래스에서 재정의(재작성) 하는 것
- 부모클래스가 제공하고 있는 메소드를 자식이 일부 고쳐서 사용하겠다는 의미
- 자식클래스의 오버라이드 된 메소드가 우선권을 가져서 호출된다.
오버라이딩의 성립조건
- 부모메소드의 메소드명과 동일
- 매개변수의 자료형, 갯수, 순서가 동일(매개변수명과는 무관)
- 반환형이 동일
- 부모메소드의 접근제한자와 같거나 공유범위가 더 넓어야 한다. (좁은 범위로 변경불가)
Object 클래스의 toString()을 오버라이딩했다.
원래 toString() 메소드는 해당 객체의 풀클래스명 + @ + 해당객체의 주소값(16진수의 형태) 형태로 반환 해준다.
그러나 위에서처럼 자식객체가 다시 재정의 해주면 저위에 작성한대로 출력 결과물이 나오게된다.
※ 오버라이딩와 오버로딩의 차이점※
오버라이딩 : 상속받은 메소드의 내용을 변경하는 것 [change]
오버로딩 : 기존에 없는 새로운 메소드를(이름이 같은) 정의 하는것 (상속X) [new]
'*JAVA*' 카테고리의 다른 글
[java] instanceof (0) | 2021.10.29 |
---|---|
[java] 다형성 (0) | 2021.10.27 |
[java] 상속(inheritance) (0) | 2021.10.27 |
[java] 객체배열 (0) | 2021.10.26 |
[java] 오버로딩(overloading) (0) | 2021.10.26 |