자바 상속과 생성자 예제

Java는 확장 키워드를 통해 클래스 확장을 지원합니다. 있는 경우 확장두 클래스 간의 부모-자식 관계를 지정합니다. 아래에서 는 클래스 차량과 자동차 사이의 관계를 설정하기 위해 확장한 다음 계정과 저축 계정 사이의 관계를 설정합니다: 그러나 클래스는 하나 이상의 인터페이스를 구현할 수 있어 Java가 여러 상속의 불가능을 제거하는 데 도움이 되었습니다. extends 키워드는 클래스 이름 과 다른 클래스 이름 앞에 지정됩니다. 확장 하기 전에 클래스 이름은 자식 및 확장 후 클래스 이름을 식별 합니다 부모를 식별 합니다. Java는 클래스 기반다중 상속을 지원하지 않으므로 확장 후 여러 클래스 이름을 지정하는 것은 불가능합니다. 위의 예에 따라 우리는 물리학 교사 IS-A 교사라고 말할 수 있습니다. 즉, 자식 클래스는 상위 클래스와 IS-A 관계를 가지고 있습니다. 하위 클래스 개체를 생성하는 것은 수퍼 클래스가 생성되는 방식과 다른 방식으로 수행될 수 있으므로 이 상속은 자식 클래스와 상위 클래스 간의 IS-A 관계라고 합니다.

하위 클래스의 클라이언트가 수퍼클래스에서 사용할 수 있는 특정 생성자호출을 원하지 않을 수 있습니다. MountainBike는 자전거의 모든 필드와 방법을 상속하고 필드 시트를 추가높이와 그것을 설정하는 방법을 설정합니다. 생성자 제외 하 고 4 개의 필드와 5 개의 메서드를 사용 하 여 완전히 처음부터 새 MountainBike 클래스를 작성 한 것 처럼 됩니다. 그러나 모든 작업을 수행할 필요는 없습니다. 이는 Bike 클래스의 메서드가 복잡하고 디버깅하는 데 상당한 시간이 걸린 경우 특히 유용합니다. 하위 클래스는 모든 멤버(필드, 메서드 및 중첩된 클래스)를 수퍼 클래스에서 상속합니다. 생성자는 멤버가 아니므로 하위 클래스에 의해 상속되지 않지만 하위 클래스의 생성자는 하위 클래스에서 호출할 수 있습니다. Java에서 자식 클래스는 기본 클래스와 동일한 메서드를 가있습니다. 이러한 경우 자식 클래스는 base 클래스의 소스 코드를 건드리지 않고 부모 클래스 메서드를 재정의합니다. 이 기능을 메서드 재정의라고 합니다. 요약하자면, 추상 클래스의 목적은 전체 구현을 만들기 위해 하위 클래스에 의해 확장 될 수있는 기본 클래스로 작동하는 것입니다.