개발자 항해
상속(Inheritance) 본문
- 상속이란?
슈퍼클래스(부모)의 모든 멤버를 서브클래스(자식)에서 물려받아 선언없이 사용하는것이다.
- 상속을 받은 서브클래스에서 별도의 선언이나 정의 없이도 슈퍼클래스가 가진 멤버변수나
메서드 등을 자신의 멤버처럼 사용가능하다.
- 상속을 활용하면 코드 중복이 제거 되며, 유지보수에 용이해진다.
- 슈퍼클래스가 가진 멤버를 물려받아 서브클래스에서 멤버를 추가하므로 기존 클래스를
확장하는 개념으로 사용된다.
- 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 |