내용을 사용한 Java OOP의 상속 상속이란?
상속은 한 클래스가 다른 클래스의 속성을 획득하는 메커니즘입니다. 예를 들어, 자녀는 부모의 특성을 상속받습니다. 상속을 통해 기존 클래스의 필드와 메서드를 재사용 할 수 있습니다. 따라서 상속은 재사용을 용이하게하며 OOP의 중요한 개념입니다.
이 튜토리얼에서 배우게 될 것입니다.-
- 상속 유형
- 자바 상속
- 자바 상속 예
- 슈퍼 키워드
- 예제를 통해 OOP의 상속 알아보기
상속 유형
Java의 다양한 상속 유형 :
단일 상속 :
단일 상속에서 한 클래스가 다른 클래스를 확장합니다 (한 클래스 만 해당).
위 다이어그램에서 클래스 B는 클래스 A 만 확장합니다. 클래스 A는 수퍼 클래스이고 클래스 B는 하위 클래스입니다.
다중 상속 :
다중 상속에서 하나의 클래스가 더 확장됩니다. 한 클래스보다. Java는 다중 상속을 지원하지 않습니다.
위 다이어그램에 따라 클래스 C는 클래스 A와 클래스 B를 모두 확장합니다.
다단계 상속 :
다단계 상속에서는 한 클래스가 파생 클래스에서 상속 될 수 있습니다. 따라서 파생 클래스는 새 클래스의 기본 클래스가됩니다.
다이어그램에 표시된대로 클래스 C는 B의 하위 클래스이고 B는 하위 클래스 클래스 A의.
계층 적 상속 :
계층 적 상속에서는 하나의 클래스가 여러 하위 클래스에 상속됩니다.
위의 예에 따라 클래스 B, C 및 D는 동일하게 상속됩니다. 클래스 A.
하이브리드 상속 :
하이브리드 상속은 단일 및 다중 상속의 조합입니다.
위의 예에 따라 클래스 A의 모든 공개 및 보호 구성원은 먼저 클래스 B를 통해 그리고 두 번째로 클래스 C를 통해 클래스 D로 상속됩니다.
참고 : Java는 “하이브리드 / 다중 상속을 지원하지 않습니다.
Java에서 상속
JAVA INHERITANCE는 한 클래스가 다른 클래스의 속성을 획득하는 메커니즘입니다. Java에서는 두 클래스간에 “Is-A”관계가있을 때 Inheritance를 사용합니다. 상위 클래스를 super라고합니다. extends
키워드는 상위 클래스의 기능을 상속하기 위해 하위 클래스에서 사용됩니다.
상속 코드를 재사용 할 수 있기 때문에 중요합니다.
Java 상속 구문 :
class subClass extends superClass { //methods and fields }
Java 상속 E xample
슈퍼 키워드
슈퍼 키워드는 “this”키워드와 유사합니다.
super 키워드는 부모 클래스의 모든 데이터 멤버 또는 메서드에 액세스하는 데 사용할 수 있습니다.
Super 키워드는 변수, 메서드 및 생성자 수준에서 사용할 수 있습니다.
구문 :
super.<method-name>();
예제를 통해 OOP의 상속 알아보기
이전 예제와 동일한 은행 애플리케이션 고려 .
저축 용과 확인 용 (현재라고도 함)의 두 가지 유형의 계정을 개설해야합니다.
구조적 및 객체 지향 프로그래밍 관점에서 코딩에 접근하는 방법을 비교하고 연구 해 보겠습니다. 구조적 접근 : 구조화 된 프로그래밍에서 우리는 두 가지 기능을 만들 것입니다. 하나는 인출
이러한 기능의 작동은 계정 전체에서 동일하게 유지됩니다.
OOP의 접근 방식 : OOP 프로그래밍 접근 방식을 사용하는 동안. 우리는 두 개의 클래스를 만들 것입니다.
- 각각 입금 및 출금 기능을 구현합니다.
- 이렇게하면 추가 작업이 중복됩니다.
소프트웨어 변경 요청
이제 소프트웨어 산업에서 매우 일반적인 것에 대한 요구 사항 사양이 변경되었습니다. 초과 인출 기능이있는 기능 권한이있는 은행 계좌를 추가해야합니다. 배경의 경우 초과 인출은 계정에있는 잔액보다 많은 금액을 인출 할 수있는 기능입니다.
구조적 접근 방식 : 기능적 접근 방식을 사용하여 철회 기능을 수정해야합니다. 이미 테스트되고 기준이 설정되었습니다. 그리고 아래와 같은 방법을 추가하면 새로운 요구 사항을 처리합니다.
OOP의 접근 방식 : OOP의 접근 방식을 사용하면 withdraw 함수의 고유 한 구현으로 새 클래스를 작성하십시오. 테스트 된 코드는 건드리지 않았습니다.
다른 변경 요청
요구 사항이 변경되는 경우 더욱이? 고유 한 예금 요구 사항이있는 신용 카드 계정을 추가하는 것을 좋아합니다.
구조적 접근 방식 : 구조적 접근 방식을 사용하면 테스트 된 입금 코드를 변경해야합니다. 다시.
OOP의 접근 방식 :하지만 객체 지향 접근 방식을 사용하면 고유 한 예금 방식 구현으로 새 클래스를 생성합니다 (아래 이미지에서 빨간색으로 강조 표시됨).
구조 프로그래밍이 처음에는 쉬운 접근 방식처럼 보이지만 장기적으로는 OOP가 승리합니다.
OPP 상속의 장점
하지만 모든 클래스에 걸쳐 반복되는 코드 조각이 있다고 주장합니다.
이를 극복하기 위해 “계정”이라고 말하는 상위 클래스를 만들고 동일한 입출금 기능을 구현합니다. 그리고 자식 클래스가 “계정”클래스를 상속 받도록 만드십시오. 따라서 그들은 계정 클래스에서 인출 및 입금 기능에 액세스 할 수 있습니다.
기능을 개별적으로 구현할 필요는 없습니다. 이것은 Java의 상속입니다. .