Java

[Java-8] 상속

zamezzz 2017. 2. 5. 15:43

 [Java-8] 상속


안녕하세요.


오늘은 JAVA의 상속에 대해서 알아보겠습니다.


상속이란 물려주는 것을 말하죠. 자바에서 상속 또한 물려줌을 뜻합니다.



■ 상속이란?

메소드 재정의



■ 상속이란?


자바에서 상속의 개념은 부모 클래스의 멤버를 자식 클래스에게 물려주는 행위를 말합니다.


부모 클래스를 상위 클래스, 자식 클래스를 하위 클래스라고 지칭합니다.


장점

- 유지보수가 효율적으로 가능

- 부모 클래스의 수정으로 모든 자식 클래스의 수정효과가 있음


사용 방법은 아래와 같습니다.


class 자식클래스 extends 부모클래스 {

  //필드

  //생성자

  //메소드

}



■ 메소드 재정의


두 번째로는 메소드 재정의 (Override)를 소개하겠습니다.


부모 클래스의 모든 메소드가 자식 클래스에게 맞지 않게 코딩되어있는 경우도 있습니다.


이 때 Overriding(오버라이딩)을 통해 메소드를 재정의해야합니다.


오버라이딩 규칙

- 부모의 메소드와 동일한 타입과 매개변수를 가져야함

- 접근 제한을 더 강하게 할 수 없음

- 새로운 예외를 throws 할 수 없음


오버라이딩은 예제와 함께 살펴보면 이해가 더욱 쉬울 것 같습니다.



* 먼저 부모 클래스인 Sum.java를 생성하여 위와 같이 작성했습니다.

  그리고 a와 b를 더하여 리턴해주는 간단한 메소드인 mySum을 작성했어요



* 그리고 Sum.java를 상속받는 TwoSum.java 파일을 생성했습니다.

  상속 방법은 위에 정리한대로 하였구요.

  TwoSum은 부모클래스에서 정의되어 있는 mySum메소드를 오버라이딩하였습니다.

  @Override 어노테이션을 사용하여 오버라이딩 되었음을 알렸습니다.

  오버라이딩하여 더한 값에 2배를 리턴해주도록 하였습니다. 이제 결과를 보겠습니다.



* 결과는 위와 같습니다.

  부모 클래스와 자식 클래스의 결과 값이 다르게 리턴되었죠.

  오버라이딩이 잘 적용되었음을 볼 수 있습니다.




오늘은 이렇게 상속에 대해서 알아보았습니다. 


다음 포스팅에서는 상속에서 한 단계 더 나아간 추상화에 대해서 알아보죠.


감사합니다.

반응형