본문 바로가기
카테고리 없음

Java & SpringBoot로 시작하는 웹 프로그래밍 : 자바 인강 4주차

by 호기심_지옥 2021. 12. 21.

그 전주 차 까지는 기본적인 문법을 배웠다면 이제 4주차에 들어와서는 심화된 자바 프로그래밍을 본격적으로

배우는 시간이 시작된다.

객체 지향 프로그래밍에서의 여러가지 응용할 수 있는 기술들을 쭈욱 배우게 되는데 그 처음 배운 것이

상속이다.

우리가 흔히 재벌가 얘기를 할 때 재산을 상속받다 라고 말하는데 여기서 말하는 상속이 그 상속을 말한다.

영어로는 상속하다가 inherit인데 자바에서는 다른 영어를 쓰이니 섣불리 예측해서 사용하거나 외우면 안 될 것이다.

 

먼저 자바에서의 상속은 부모 클래스와 자식 클래스로 구성되어 있다.

앞서 말했다시피 재벌가의 재산을 상속하는 그 이미지 그대로 가져와도 괜찮다.

 

부모 클래스가 가진 걸 자식 클래스가 그대로 물려받는 그런 대략적인 개념이다.

단지 자식, 자바에서 말하는 자식 클래스는 상속받고 싶은 부모를 (부모 클래스)를 선택해서 물려받을 수 있다는 것이다.

정리하자면

상속 받는 클래스 = 자식 class, 하위 class, 서브 class   등 이렇게 부를 수 있다.

상속 하는 클래스 = 부모 class, 상위 class, 슈퍼 class 등 이렇게 말한다.

 

먼저 자식 class가 부모 class의 것을 상속 받게 된다 즉 상속하기로 선택했다면 부모 class의 메서드를 물려받게 된다.

단 접근제어자 우리가 앞서 배웠던 그 부분이 여기서 중요하게 쓰이는데 [ 접근제어자 - public, default, private 등등 ] 

접근 제어자가 private를 갖는 메서드는 상속이 안되고 패키지가 다를 경우 접근제어자가 default인 경우도 상속이 불가능하다.

 

그렇다면 상속을 왜 하느냐?

상속을 하게 되면 중복된 코드. 부모와 자식은 닮은 부분이 무척이나 많으니. 중복된 코드를 줄일 수가 있고 통일성이 있으며 유지보수가 편리하고 다형성을 표현할 수 있다는 점이 대표적이다.

 

상속을 하는 방법.

상속을 받을 자식class 뒤에 extends 단어를 붙여주고 부모 class 이름을 쓰면된다.

 

ex)

class 자식class extends 부모class {

}

 

또한 이게 우리 실세계에서도 일반적인? 개념이라고 할 수 있는데

자식class는 두 명 이상의 부모class한테 다중 상속을 받는 게 안된다. 즉 한 부모만 섬길 수 있다..

하지만 부모는 자식을 여러 명 둘 수 있으니  부모class는 여러 개의 자식class에게 상속이 가능하다.

 

앞으로 다양한 프로그래밍을 할 때 코드가 길어지고 중복된 여러 클래스를 이용할 경우가 많이 나올 때

상속 키워드를 활용해서 코딩을 하게 되면 한결 깔끔한 코드가 될 수 있지 않을까 싶다.