개발자 항해

상속(Inheritance) 본문

Programming/Java

상속(Inheritance)

리치Y 2022. 6. 24. 23:18
  • 상속이란?

슈퍼클래스(부모)의 모든 멤버를 서브클래스(자식)에서 물려받아 선언없이 사용하는것이다.

- 상속을 받은 서브클래스에서 별도의 선언이나 정의 없이도 슈퍼클래스가 가진 멤버변수나

  메서드 등을 자신의 멤버처럼 사용가능하다.

- 상속을 활용하면 코드 중복이 제거 되며, 유지보수에 용이해진다.

- 슈퍼클래스가 가진 멤버를 물려받아 서브클래스에서 멤버를 추가하므로 기존 클래스를

 확장하는 개념으로 사용된다.

- private이 적용된 멤버는 상속되지 않는다.

- 생성자도 상속되지 않는다.(생성자는 자신의 클래스이름과 동일해야하는데 생성자가 상속되면 

이름이 달라지기때문에 안된다.)

- 자바는 단일상속만 지원 - 동시에 2개이상의 클래스를 상속받을 수 없다.

- 클래스 정의시 별도의  extends  키워드를 사용하지 않으면 java.lang.Object  클래스를 상속받게됨.

 ( 즉, 모든 클래스에서 Object 클래스의 멤버에 접근이 가능하다.)

 

  • 슈퍼클래스 생성자와 서브클래스 생성자

서브 클래스(하위클래스)에서는 슈퍼클래스(상위클래스)생성자를 호출하는 코드를 적지않으면 에러난다.

왜냐하면 상위클래스의 생성자가 먼저 호출되고 나서 하위클래스가 생성되기때문이다.

부모없는 자식은 태어날수없다.

상위클래스 생성자 호출하니 에러안남
디폴트 생성자가 있다면 기본으로 서브클래스에서도 생성해주므로 직접쓰지않아도 에러나지않는다.

  • 슈퍼클래스에서 서브클래스로 , 서브 클래스에서 슈퍼클래스로 접근해보았다.

 

'Programming > Java' 카테고리의 다른 글

싱글톤(singleton)  (0) 2022.07.22
오버로딩과 오버라이딩 차이점  (0) 2022.06.28
static - static 변수와 메서드2(+활용예)  (0) 2022.06.23
static - static 변수와 메서드1  (0) 2022.06.22
로컬변수와 멤버변수  (0) 2022.06.22