상속(Inheritance)
자바에는 상속이라는 개념이 존재한다.
부모클래스(상위클래스/슈퍼클래스) 와 자식클래스(하위클래스/서브클래스)rk dlTdmau,
자식이 상속받고 싶은 부모 클래스를 정해서 필드와 메소드를 물려받는다고 생각하면 된다.
단, 접근제어자가 private 인 필드와 메소드는 상속이 불가하고, 패키지가 다를 경우에는 default인 경우에도 상속이 불가하다.
중복된 코드를 줄이고, 유지보수에 편리. 통일성과 다형성 구현을 위해 사용된다. (자식 클래스 인스턴스 생성이 효율적)
방법 ( 선언 ) - extends
상속받을 자식 클래스 뒤에 extends (부모클래스) 를 적어주면 된다.
[부모클래스]
public class parentClass {};
[자식클래스]
public class childClass extends parentClass{};
자바에서는 다중 상속을 받는 것은 불가능하다. (extends 는 한번만 가능)
하나의 클래스는(하위) 단일 상속만 받을 수 있다. 부모 클래스는 여러 자식 클래스들에게 상속이 가능하다.
[가능]
public class childClass1 extends parentClass{};
public class anotherClass extends parentClass{};
[불가능]
public class childClass extends parentClass, anotherClass{};
부모 생성자의 호출 (super)
자바에서는 자식 객체 생성 시, 부모 객체를 먼저 생성 후, 자식 객체가 생성이 된다.
'명시적인 생성자 선언' 이 없다면, 기본생성자가 생성이 되는데, 부모 객체를 생성할 경우, 자식클래스의 생성자 선언 내부 맨 첫 줄에 super(); 가 생성된다.
매개변수가 있는 명시적 생성자의 경우 자식클래스 생성자 내부 첫줄에 super(매개값, 매개값, ...); 선언을 꼭 해주어야 한다.
*super = 부모클래스(객체)
'코딩 > java' 카테고리의 다른 글
[java] #11 중첩 클래스와 중첩 인터페이스 (0) | 2023.02.18 |
---|---|
[java] 10. 추상클래스와 인터페이스 (0) | 2023.02.06 |
[java] 8. 입력과 출력 (0) | 2023.02.04 |
[java] 7. 객체 지향 프로그래밍(객체, 클래스) (0) | 2023.02.02 |
[java] #6 배열 (0) | 2023.02.02 |