본문 바로가기
그 외 프로그래밍 언어/Java

자바, 상속

by Dreaming Coder 2021. 12. 21. 22:33

 


 

객체지향 프로그래밍의 특징 4가지인 추상화, 캡슐화, 상속, 다형성..

기억하고들 계시죠?

이번에는 그중에서 상속에 대해서 공부해보겠습니다.

 

 

 

지난 포스트

 

자바, ArrayList 2 (다른 패키지에 있는 클래스 가져오기)

지난 포스트에 이어서 계속해서 ArrayList를 공부해보겠습니다. 지난 포스트 자바, ArrayList 지난 포스트에서 공부했던 객체 배열은 오늘 공부할 어레이리스트를 배우기 위한 초석이었습니다. 오늘

gogogameboy.tistory.com

 

 

 

상속 Inheritance

 

 

자바, 객체지향 프로그래밍 (OOP)

갈수록 점점 더 어려워집니다. 이번에는 메소드보다 더 큰 벽인 객체지향 프로그래밍(Object Oriented Programming)에 대해서 배워보겠습니다. 지난 포스트 자바, 메소드 오버로딩 (중복정의) 이번에는

gogogameboy.tistory.com

객체지향 프로그래밍에 대해서 공부할 때에 이미 상속에 대해서 설명을 한 적이 있습니다.

이미 작성된 클래스(상위 클래스)의 특성을 그대로 이어받아 새로운 클래스(하위 클래스)를 생성하는 기법이라고 했었죠.

 

말 그대로 기존에 있던 클래스의 변수(데이터)와 메소드(로직, 코드)를 물려받아 새로운 클래스를 구성하는 것,

그걸 상속이라고 합니다.

 

이때 기존에 있던 클래스를 '부모 클래스, 슈퍼 클래스'라고 하고, 물려받아서 만드는 새로운 클래스를 '자식 클래스, 서브 클래스'라고 합니다.

 

 

 

상속을 사용해서 얻는 장점

 

상속이라는 것은 왜 생겨난 것인지, 어떤 때 사용하는 것인지, 사용하면 뭐가 좋은 것인지 묻는다면,

자주 사용하게 되는 똑같은 코드를 기존 클래스에서 가져와 재사용할 수 있습니다.

그래서 코드의 중복도 감소가 되면서 코드가 간결해집니다.

그리고 클래스 간에 계층적 분류 및 관리를 할 수 있습니다. 그래서 유지보수도 쉬워지죠.

거기에 더해서 부모 클래스에는 없던 추가적인 기능을 더 만들어낼 수 있습니다.

 

 

 

 

상속의 문법

 

class 서브클래스 extends 슈퍼클래스

 

처음 보는 extends라는 키워드가 나왔습니다.

이 키워드만 기억하시면 됩니다.

이 키워드가 나오면 상속을 사용하는 것입니다.

 

 

 

상속의 특징

 

1. 다중상속을 지원하지 않습니다.

무슨 말이냐면 자식 클래스가 여러 개의 부모 클래스를 가질 수 없다는 말입니다.

상속을 받을 상위 클래스는 하나뿐이어야 합니다.

 

 

 

2. 상속의 횟수에 제한을 두지 않습니다.

여러 개의 부모 클래스를 두는 다중상속을 지원하지 않는 것과는 반대로,

부모 클래스는 여러개의 자식 클래스를 두는 것이 가능합니다.

그리고 상속을 받았던 자식 클래스가 부모 클래스가 되어 다른 클래스로 상속을 하는 것이 가능합니다.

 

 

 

3. 모든 클래스는 java.lang.Object를 상속받습니다.

java.lang.Object를 다른 말로 최상위 클래스라고 합니다.

우리들이 지금까지 코딩을 하다가 마침표(.)를 찍으면 우리들이 설계를 한 메소드들이 아닌 다른 수많은 메소드들도 보였던 적이 있으셨을 텐데, 그것들이 사실은 다 최상위 클래스가 가지고 있었던 것입니다.

 

 

 


이 글이 도움이 됐다면 하단의 공감 버튼을 꾹 눌러서
빨간 하트로 만들어주세요.
지인에게 보여주고 싶은 글이었다면
공감 버튼 옆을 클릭해서 SNS 공유해주세요.
댓글은 블로그 운영에 큰 힘이 됩니다.

 


 


댓글