그 전주 차 까지는 기본적인 문법을 배웠다면 이제 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에게 상속이 가능하다.
앞으로 다양한 프로그래밍을 할 때 코드가 길어지고 중복된 여러 클래스를 이용할 경우가 많이 나올 때
상속 키워드를 활용해서 코딩을 하게 되면 한결 깔끔한 코드가 될 수 있지 않을까 싶다.