01. 상속 조항 (1)

상속이란 무엇입니까?
– 자식 클래스는 부모 클래스에서 생성한 필드와 메서드를 그대로 상속받으므로 자식 클래스가 같은 속성을 재정의할 필요가 없어 자식 클래스가 더 쉬워집니다.

객체 지향에서 상속의 이점
– 클래스 간소화: 중복 멤버 작성 불필요
– 간단한 클래스 관리 : 계층적 분류
– 소프트웨어 생산성 향상 : 클래스의 손쉬운 재사용 및 확장, 새로운 클래스의 빠른 생성

부모 클래스는 슈퍼 그레이트하위 클래스는 아강그것은이라고. 사유지 퍼지는 키워드를 사용

public class ColorPoint extends Point {
} // Point가 슈퍼 클래스 ColorPoint가 서브 클래스이다

자바 상속의 특징
– 클래스의 다중 상속을 지원하지 않습니다.
– 무제한 상속
– 상속의 최상위 조상 클래스는 java.lang.Object 클래스입니다. (모든 클래스는 자동으로 java.lang.Object를 상속하며 이는 Java 컴파일러에 의해 자동으로 수행됩니다.)

자바 액세스 지정자 4(액세스 가능한 범위는 private < default < protected < public 순입니다.)
– 슈퍼 클래스의 비공개 멤버: 슈퍼 클래스의 비공개 멤버는 다음과 같습니다. 다른 모든 클래스에 대한 액세스 거부, 클래스 멤버에게만 액세스 허용
– 기본 슈퍼 클래스 멤버: 기본 슈퍼 클래스 멤버는 다음과 같습니다. 패키지의 모든 클래스에 대한 액세스 허용
– 슈퍼 클래스의 공개 멤버: 슈퍼 클래스의 공개 멤버는 다른 모든 클래스에 대한 액세스 허용
– 상류층의 보호받는 구성원: 동일한 패키지의 모든 클래스에 대한 액세스 허용, 다른 패키지에서도 서브클래스는 슈퍼클래스의 보호된 멤버에 액세스할 수 있습니다.

하위 클래스의 객체가 다시 생성될 때
– 슈퍼클래스 생성자와 서브클래스 생성자가 모두 실행됩니다.
– 호출 순서: 하위 클래스의 생성자가 먼저 호출되고 하위 클래스의 생성자가 상위 클래스의 생성자를 호출한 후 실행됩니다.
– 실행 순서: 상위 클래스의 생성자가 먼저 실행된 다음 하위 클래스의 생성자가 실행됩니다.

class A {
	public A() {
		System.out.println("생성자 A");
	}
}
class B extends A {
	public B() {
		System.out.println("생성자 B");
	}
}
class C extends B{
	public C() {
		System.out.println("생성자 C");
	}
}
public class ConstructorEx {

	public static void main(String() args) {
		C c;
		c = new C();

	}

}


결과

생성자 A
생성자 B
생성자 C