■ [Java-8] 상속
안녕하세요.
오늘은 JAVA의 상속에 대해서 알아보겠습니다.
상속이란 물려주는 것을 말하죠. 자바에서 상속 또한 물려줌을 뜻합니다.
■ 상속이란?
■ 메소드 재정의
■ 상속이란?
자바에서 상속의 개념은 부모 클래스의 멤버를 자식 클래스에게 물려주는 행위를 말합니다.
부모 클래스를 상위 클래스, 자식 클래스를 하위 클래스라고 지칭합니다.
장점
- 유지보수가 효율적으로 가능
- 부모 클래스의 수정으로 모든 자식 클래스의 수정효과가 있음
사용 방법은 아래와 같습니다.
class 자식클래스 extends 부모클래스 { //필드 //생성자 //메소드 } |
■ 메소드 재정의
두 번째로는 메소드 재정의 (Override)를 소개하겠습니다.
부모 클래스의 모든 메소드가 자식 클래스에게 맞지 않게 코딩되어있는 경우도 있습니다.
이 때 Overriding(오버라이딩)을 통해 메소드를 재정의해야합니다.
오버라이딩 규칙
- 부모의 메소드와 동일한 타입과 매개변수를 가져야함
- 접근 제한을 더 강하게 할 수 없음
- 새로운 예외를 throws 할 수 없음
오버라이딩은 예제와 함께 살펴보면 이해가 더욱 쉬울 것 같습니다.
* 먼저 부모 클래스인 Sum.java를 생성하여 위와 같이 작성했습니다.
그리고 a와 b를 더하여 리턴해주는 간단한 메소드인 mySum을 작성했어요
* 그리고 Sum.java를 상속받는 TwoSum.java 파일을 생성했습니다.
상속 방법은 위에 정리한대로 하였구요.
TwoSum은 부모클래스에서 정의되어 있는 mySum메소드를 오버라이딩하였습니다.
@Override 어노테이션을 사용하여 오버라이딩 되었음을 알렸습니다.
오버라이딩하여 더한 값에 2배를 리턴해주도록 하였습니다. 이제 결과를 보겠습니다.
* 결과는 위와 같습니다.
부모 클래스와 자식 클래스의 결과 값이 다르게 리턴되었죠.
오버라이딩이 잘 적용되었음을 볼 수 있습니다.
오늘은 이렇게 상속에 대해서 알아보았습니다.
다음 포스팅에서는 상속에서 한 단계 더 나아간 추상화에 대해서 알아보죠.
감사합니다.
'Java' 카테고리의 다른 글
[Java-10] 예외 처리(Exception) (0) | 2017.02.18 |
---|---|
[Java-9] 추상클래스, 추상메소드, 인터페이스 (0) | 2017.02.12 |
[Java-7] 클래스 (0) | 2017.01.30 |
[Java-6] 객체와 클래스 (1) | 2017.01.28 |
[Java-5] 참조 타입 (문자열, 배열, 열거) (0) | 2017.01.24 |