Java 프로그래밍 언어의 상속 탐색

Java 프로그래밍 언어의 상속 탐색

상속은 객체 지향 프로그래밍의 핵심 개념 중 하나입니다. 프로그래밍에서 상속이라는 단어는 자식 클래스가 부모 클래스의 상태와 동작을 가정하는 관계를 나타냅니다.





소프트웨어 개발에서 상속의 목적은 안전하고 신뢰할 수 있는 소프트웨어의 재사용을 용이하게 하는 것입니다. 상속 사용의 주요 이점 중 하나는 프로그램에서 중복 코드를 제거한다는 것입니다.





아티스트들은 스포티파이에서 얼마를 벌어요

상속이 작동하는 방식

상속의 이면에 있는 아이디어는 많은 클래스 또는 개체가 동일한 속성 및 메서드 집합을 가지고 있다는 것입니다. 따라서 신뢰할 수 있는 소프트웨어를 생산한다는 정신으로 이제 기존 관련 클래스에서 새 클래스를 끌어올 수 있으며 필요한 경우 기존 상태 및 동작을 확장할 수 있습니다.





상속이 어떻게 작동하는지에 대한 실제 사례는 과일을 고려하는 것입니다. 이것은 다양한 항목을 캡슐화하는 역할을 하는 광범위한 레이블입니다.

사과는 과일이고 오렌지도 마찬가지입니다. 그러나 오렌지는 사과가 아니므로 상점을 소유하고 있다면 과일을 재고 품목 중 하나로 갖지 않을 것입니다. 인벤토리에 과일 섹션이 있을 수 있고 그 섹션 아래에 사과와 오렌지와 같은 더 구체적인 항목이 있을 수 있습니다.



이것이 상속이 작동하는 방식입니다.

Java에서 상속 사용

상속은 객체 지향 프로그래밍 패러다임을 사용하는 모든 프로그래밍 언어에서 사용할 수 있습니다. 그러나 상속이 사용되는 정확한 방법은 특정 프로그래밍 언어에 따라 다릅니다.





예를 들어, C++는 또한 객체 지향 프로그래밍 언어입니다. . C++는 다중 상속을 지원하지만 Java는 단일 상속만 지원합니다.

이것이 의미하는 바는 Java에서 부모 클래스는 많은 자식 클래스를 가질 수 있지만 각 자식 클래스는 하나의 부모 클래스만 가질 수 있다는 것입니다(단일 상속). 그러나 Java에서 조부모, 부모 및 자식 관계를 만들어 간접 다중 상속을 달성하는 방법이 있습니다.





자바에서 부모 클래스 생성

소프트웨어 요구 사항 문서에서 상위 클래스를 선택하는 프로세스를 객체 지향 분석이라고 합니다. 이 과정에서 이라는 문구는 가능한 상속 관계를 식별하는 데 자주 사용됩니다. 위의 예를 보면 그 과일이 우리의 부모 클래스라는 것을 알 수 있을 것입니다.

과일 부모 클래스 예


public class Fruit {
//Variable Declaration
protected String seed;
protected String skinColor;
protected String taste;
//Default Constructor
public Fruit(){
seed = '';
skinColor ='';
taste ='';
}
//Primary Constructor
public Fruit(String seed, String skinColor, String taste){
this.seed = seed;
this.skinColor = skinColor;
this.taste = taste;
}
//getters and setters
public String getSeed() {
return seed;
}
public void setSeed(String seed) {
this.seed = seed;
}
public String getSkinColor() {
return skinColor;
}
public void setSkinColor(String skinColor) {
this.skinColor = skinColor;
}
public String getTaste() {
return taste;
}
public void setTaste(String taste) {
this.taste = taste;
}
//eat method
public void eat(){
//general code on how to eat a fruit
}
//juice method
public void juice() {
//general code on how to juice a fruit
}
}

위의 상위 클래스에서 가장 주목할만한 측면 중 하나는 각 변수 선언과 함께 사용되는 액세스 수정자입니다. 보호된 액세스 수정자는 자식이 아닌 클래스가 부모 클래스의 데이터 특성에 액세스하는 것을 방지하기 때문에 부모 클래스에서 사용하기에 이상적입니다.

코드 아래에서는 모든 Java 클래스의 일반적인 빌딩 블록인 생성자, getter 및 setter에 대해 소개합니다. 마지막으로, 모든 과일에 보편적이기 때문에 프로그램의 부모 클래스에서 생성된 두 가지 방법(juice 및 eat)을 소개합니다. 모든 과일은 먹고 주스로 만들 수 있습니다.

자바에서 자식 클래스 만들기

자식 클래스는 일반적으로 부모로부터 상태와 동작을 상속하고 이러한 특성을 보다 구체적으로 사용자 지정하기 때문에 일반적으로 특수 클래스 또는 파생 클래스라고 합니다.

계속해서 우리의 예를 보면 왜 오렌지가 위의 과일 클래스의 적합한 자식 클래스인지 알 수 있을 것입니다.

주황색 자식 클래스 예


public class Orange extends Fruit{
//variable declaration
private int supremes;
//default constructor
public Orange() {
supremes = 0;
}
//primary constructor
public Orange(String seed, String skinColor, String taste, int supremes){
super(seed, skinColor, taste);
this.supremes = supremes;
}
//getters and setters
public int getsupremes() {
return supremes;
}
public void setsupremes(int supremes) {
this.supremes = supremes;
}
//eat method
public void eat(){
//how to eat an orange
}
//juice method
public void juice() {
//how to juice and orange
}
//peel method
public void peel(){
//how to peel an orange
}
}

일반 Java 클래스 선언의 모양과 위의 코드에 있는 것과는 차이가 있습니다. extends 키워드는 상속을 가능하게 하기 위해 Java에서 사용되는 키워드입니다.

위의 예에서 자식 클래스(주황색)는 부모 클래스(과일)를 확장합니다. 따라서 과일 클래스의 상태와 동작은 이제 주황색 클래스에서 액세스하고 수정할 수 있습니다.

오렌지 클래스의 고유한 속성은 변수 이름 Supremes(오렌지에서 발견되는 작은 세그먼트의 공식 이름)로 식별됩니다. 여기에서 전문성이 작용합니다. 모든 과일에 최상급이 있는 것은 아니지만 모든 오렌지에 최상급이 있으므로 오렌지 클래스에 최상급 변수를 예약하는 것은 논리적입니다.

모든 과일을 껍질을 벗길 수는 없지만 오렌지는 종종 껍질을 벗기기 때문에 기존의 먹음 및 주스 방법에 껍질 방법을 추가하는 것도 논리적입니다.

기존의 eat and juice 방법을 변경할 의도가 없었다면 해당 방법을 오렌지 클래스에 포함할 필요가 없다는 점을 염두에 두어야 합니다. 주황색 클래스의 메서드는 과일 클래스의 유사한 메서드를 재정의합니다. 따라서 모든 과일을 같은 방식으로 먹고 즙을 낸다면 주황색 클래스에서 이러한 메서드를 만들 필요가 없습니다.

상속에서 역할 생성자가 수행하는 역할

기본적으로 부모 클래스 생성자는 자식 클래스에 상속됩니다. 따라서 자식 클래스 객체가 생성되면 부모 클래스 객체도 자동으로 생성된다는 의미입니다.

우리의 예로 돌아가서 새로운 오렌지 객체가 생성될 때마다 오렌지는 과일이기 때문에 과일 객체도 생성됩니다.

뒤에서 자식 클래스 객체가 생성될 때 부모 클래스의 생성자가 먼저 호출되고 그 다음에 자식 클래스의 생성자가 호출됩니다. 위의 주황색 자식 클래스에서 매개 변수 없이 주황색 개체가 생성되면 기본 과일 클래스 생성자가 호출되고 그 다음에 기본 주황색 클래스 계약자가 호출됩니다.

위의 기본 생성자의 super 메소드는 매개변수가 있는 주황색 객체가 생성될 때마다 부모 과일 클래스의 기본 생성자가 아닌 기본 생성자가 호출되어야 한다고 지정하기 때문에 필요합니다.

이제 Java에서 상속을 사용할 수 있습니다.

이 기사에서 상속이 무엇인지, 어떻게 작동하는지, 프로그래밍에서 상속이 왜 그렇게 중요한 개념인지 배울 수 있었습니다. 이제 Java 프로그래밍 언어를 사용하여 상속 관계를 만들 수 있습니다. 또한, 이제 조부모 관계를 생성하여 Java의 단일 상속 규칙을 우회하는 방법을 알게 되었습니다.

이미지 크레디트: Andreas Wohlfahrt / 펙셀

공유하다 공유하다 트위터 이메일 상속으로 객체 지향 코드를 구성하는 방법

객체 지향 프로그래밍을 올바르게 하려면 상속에 대해 알아야 하고 상속이 코딩을 단순화하고 오류를 줄이는 방법을 알아야 합니다.

다음 읽기
관련 항목
  • 프로그램 작성
  • 자바
  • 객체 지향 프로그래밍
저자 소개 카데이샤 킨(21편 게재)

Kadeisha Kean은 전체 스택 소프트웨어 개발자이자 기술/기술 작가입니다. 그녀는 가장 복잡한 기술 개념 중 일부를 단순화하는 독특한 능력을 가지고 있습니다. 기술 초보자라면 누구나 쉽게 이해할 수 있는 소재를 생산합니다. 그녀는 글쓰기, 흥미로운 소프트웨어 개발 및 세계 여행(다큐멘터리를 통해)에 열정적입니다.

카데이샤 킨이 참여한 작품 더보기

뉴스레터 구독

기술 팁, 리뷰, 무료 전자책 및 독점 거래에 대한 뉴스레터에 가입하십시오!

구독하려면 여기를 클릭하세요.