*JAVA*

[java] 오버라이딩(overriding)

깐부로부터 2021. 10. 27. 21:52

- 상속받고 있는 부모클래스의 메소드를 자식클래스에서 재정의(재작성) 하는 것

- 부모클래스가 제공하고 있는 메소드를 자식이 일부 고쳐서 사용하겠다는 의미

- 자식클래스의 오버라이드 된 메소드가 우선권을 가져서 호출된다. 

 

오버라이딩의 성립조건

  • 부모메소드의 메소드명과 동일
  • 매개변수의 자료형, 갯수, 순서가 동일(매개변수명과는 무관)
  • 반환형이 동일
  • 부모메소드의 접근제한자와 같거나 공유범위가 더 넓어야 한다. (좁은 범위로 변경불가)

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