관리 메뉴

자바(JAVA) 상속 2 오버라이드(Override) & super 키워드 본문

Java/Java 기본 개념

자바(JAVA) 상속 2 오버라이드(Override) & super 키워드

ª_ª 2016. 12. 19. 10:04
728x90
반응형

오버라이드(Override)?

부모 클래스에 있는 메소드를 자식 클래스에서 재정의 하는 것입니다. 자식 클래스가 부모 클래스를 상속하여 자식에게 없는 메소드를 호출하면 부모클래스에 가서 해당 메소드를 찾게 됩니다. 만약 부모 클래스의 메소드를 자식클래스에서 동일한 이름으로 다시 재정의 하면 부모클래의 메소드를 찾지 않고 자식 클래스의 메소드를 호출하게 됩니다. 이것을 오버라이드(재정의)라고 합니다.

 

부모 클래스 와 자식 클래스

- 부모 클래스에는 메소드1, 메소드2번이 있습니다. 

- 자식 클래스에는 Override된 메소드1, 메소드3이 있습니다.



메인 클래스

메소드 1번은 재정의가 되었고 메소드2번은 재정의가 되지않았고 메소드3번은 자식클래스에서 생성한 것입니다.

따라서 결과는 자식클래스의 메소드1번이 출력되고 부모클래스의 메소드2번이 출력되고 마지막으로 자식클래스의 메소드3번이 출력 됩니다.



super 키워드란?

재정의(override)는 잘 만들어진 클래스를 상속받아서 일부 메소드를 수정 할 수 있다는 것입니다. 하지만, 자식 클래스에서 부모 클래스를 재정의(override)를 하면 부모 클래스의 메소드는 사용할 수가 없습니다. 이것이 재정의(override)의 단점 입니다. 그래서 나온 키워드가 super키워드입니다. super 키워드는 자식 클래스에서 부모 클래스의 메소드를 사용하고자 할 때 super 키워드를 사용하게 됩니다.


부모 클래스와 자식 클래스

똑같이 오버라이드를 시키고 super.메소드이름()을 이용해서 부모클래스의 메소드를 가지고와서 사용 하게 되었습니다. 또한, 오버라이드된 상태이기 때문에 부모 클래스에서 부족했던 부분을 자식 클래스에서 추가적으로 더 설계할 수 있습니다.




메인 클래스

클래스가 호출 되는 순서

상속 받은 자식 클래스가 존재 한다면 부모 클래스가 먼저 호출 되고 다음으로 자식 클래스가 호출 됩니다.

위의 결과와 같이 

- 부모 클래스가 제일 먼저 실행 됩니다.

- 다음으로 자식 클래스가 실행 됩니다.

- 자식 클래스의 메소드1()이 실행 되어야 하지만 super 키워드로 인해 부모 클래스의 메소드1()이 실행 됩니다. 

- 마지막으로 자식 클래스의 오버라이드된 메소드1()이 실행 됩니다.



super.zip

728x90
반응형

'Java > Java 기본 개념' 카테고리의 다른 글

자바(JAVA) 인터페이스(interface)  (0) 2016.12.26
자바(JAVA) 추상 클래스  (0) 2016.12.21
자바(JAVA) 상속 1  (0) 2016.12.12
자바(JAVA) static 키워드  (0) 2016.12.08
자바(JAVA) 클래스  (0) 2016.11.23
Comments