본문 바로가기
컴소니/개발

[다시 시작하는 JAVA 개발] 클래스 상속

by 금소니 2022. 5. 12.
반응형

#217

1. 클래스 상속이란?

다들 상속이라는 개념에 대해서 알고 계시죠?

예를들어 부모가 자식에게 재산을 상속한다는 것처럼 클래스에서도 비슷한 개념을 가지고 있습니다.

자바에는 부모 클래스와 자식 클래스가 있습니다.

이 때 부모 클래스의 멤버를 자식 클래스가 내려받는 것을 클래스 상속이라고 합니다.

 

그림으로 한 번 알아볼까요?

클래스 상속을 설명할 때 많이들 사용하는 방법입니다.

위의 다이어그램을 보셨을 때 사람이라는 클래스와 학생, 군인 클래스가 있습니다.

학생과 군인 클래스는 공통적으로 사람이라는 클래스의 필드와 메소드를 가지고 있습니다.

 

이 경우 사람 클래스는 부모 클래스가 되고 학생과 군인 클래스는 이 필드와 메소드를 상속받아 자식 클래스가 됩니다.

그럼 학생과 군인 클래스에서는 별도로 필드와 메소드를 선언하지 않고 상속을 받아 이용할 수 있게되는 것입니다.

2. 클래스 상속을 사용하는 이유

그러면 이 클래스 상속을 왜 사용하는지 알아보도록 하겠습니다.

클래스 상속을 이용하면 동일한 필드와 메소드를 한 번만 정의하면 되므로 코드의 중복성을 제거할 수 있습니다.

따라서 소스코드가 간결해지고 개발 시간을 단축할 뿐만 아니라 유지보수도 용이해질 수 있습니다.

또한, 자바의 특징 중 하나인 다형적 표현입니다.

부모 클래스를 통하여 자식 클래스를 표현할 수 있습니다.

 

3. 클래스 상속 써보기

그럼 본격적으로 위에 다이어그램처럼 클래스 상속을 구성해보도록 하겠습니다.

1) 부모 클래스

Person

2) 자식 클래스

Student, Army

보시면 아시겠지만 부모 클래스를 상속받는 자식클래스는 클래스명 뒤에 "extends"와 부모 클래스명을 적어주시면 상속을 받을 수 있습니다.

그리고 자식 클래스에서는 자식클래스에서만 사용할 멤버들만 작성하여 사용하시면 됩니다.

 

3) 메인 클래스/메소드에서 결과 확인하기

그럼 메인 클래스/메소드에서 부모 클래스의 멤버와 자식 클래스의 멤버를 통하여 값을 출력해보도록 하겠습니다.

메인 메소드에는 부모 클래스의 객체와 자식 클래스 객체를 모두 생성하였고 자식 클래스에서만 가지고 있는 메소드뿐만 아니라 클래스 상속을 보여주기 위해 각 자식 객체에서 부모 클래스의 메소드까지 출력해보도록 해봤습니다.

 

분명 보시면 아시겠지만 자식 클래스에 eat()이라는 메소드는 없지만 오류가 발생하지 않고 정상적으로 값이 출력됩니다.

그 이유는 바로 부모 클래스를 상속받았기 때문입니다.

반응형

댓글