JAVA - 클래스의 상속

CHA·2022년 11월 15일
0

JAVA 개념조각

목록 보기
2/4

상속의 필요성을 느껴보자.

B라는 새로운 클래스를 만들고 싶은데 B 클래스는 A 클래스의 변수와 메서드를 기반으로 새로운 기능이 추가된 클래스라 하자.

만약에 상속의 개념이 없다면, B라는 클래스는 A 클래스에 있는 변수와 메소드들을 전부 똑같이 구현해 내야 할것이다. 이는 코드의 중복으로 이어지고 효율성이 매우 낮아지는 결과를 초래한다.

여기에서 상속이라는 개념을 이용하게 된다면

아주 놀랍게도

B 클래스는 코드의 중복 없이 A 클래스의 변수와 메소드를 그대로 사용할 수 있다!

상속의 문법

class [하위 클래스이름] extends [상위 클래스 이름]{ . . . }

위에서 이야기한 A,B 클래스를 다시 한번 생각해보자.
B 클래스는 A 클래스를 상속하였고, B 클래스를 인스턴스화 하였다고 생각해보자.

그러면 클래스 B의 인스턴스에는 B의 인스턴스 변수와 메소드, A의 인스턴스 변수와 메소드까지 포함하게 된다. 그러므로, A 클래스의 인스턴스 변수와 메소드에 접근이 가능함을 알 수 있다.

더 나아가서, 만약에 부모 클래스에 인스턴스 변수와 메소드가 아닌 클래스 변수와 메소드가 있다고 하면 어떨까?

클래스 변수와 메소드는 인스턴스 대상이 아니기 때문에 상속의 대상에도 포함되지 않는다.

그렇다면 여기서 궁금증이 남는다.
자식 클래스에서 부모 클래스의 클래스 변수와 메소드에는 어떻게 접근해야 할까?

상속이 되어있다면, 이름만으로도 접근이 가능하다.
단, 접근지시자로 private 가 설정되어있다면 접근이 불가하다.

profile
Developer

0개의 댓글