>  기사  >  Java  >  Java의 계층적 상속

Java의 계층적 상속

WBOY
WBOY원래의
2024-08-30 15:26:03951검색

Java의 계층적 상속은 Java의 상속 유형 중 하나입니다. 상속은 객체지향 프로그래밍 시스템의 중요한 기능 중 하나입니다. 상속은 한 클래스가 다른 클래스의 모든 속성과 동작을 상속하거나 획득하는 메커니즘입니다. 클래스는 부모 클래스, 상위 클래스 또는 기본 클래스라고 하는 속성과 동작을 상속하고, 클래스는 자식 클래스 또는 파생 클래스라고 하는 속성과 동작을 상속합니다. 계층적 상속에서는 여러 하위 클래스가 단일 클래스를 상속하거나 단일 클래스가 여러 하위 클래스에 상속됩니다. Java에서 상속을 사용하는 이유는 코드의 재사용성과 동적 다형성(메서드 재정의)을 위한 것입니다.

Java에서는 어떻게 작동하나요?

아래 다이어그램을 통해 계층적 상속을 더욱 명확하게 이해할 수 있습니다.

광고 이 카테고리에서 인기 있는 강좌 JAVA MASTERY - 전문 분야 | 78 코스 시리즈 | 15가지 모의고사

Java의 계층적 상속

위 예시 그림과 같이 ClassB와 ClassC는 동일하거나 단일 클래스인 ClassA를 상속받습니다. 따라서 ClassA 변수와 메서드는 ClassB와 ClassC 클래스 모두에서 재사용됩니다. 위 다이어그램은 둘 이상의 하위 클래스가 동일한 상위 클래스를 갖고 있으므로 이러한 유형의 상속을 계층적 상속이라고 합니다.

Java의 단일 상속 구문:

class Subclassname1 extends Superclassname
{
// variables and methods
}

Java의 계층적 상속 구문:

class Subclassname1 extends Superclassname
{
// variables and methods
}
class Subclassname2 extends Superclassname
{
// variables and methods
}

'확장하다'는 의미는 기능을 늘리는 것입니다. 확장 키워드는 상속을 나타냅니다. 즉, 기존 클래스에서 파생된 새 클래스를 만들고 있습니다.

Java의 계층적 상속의 예

다음은 다양한 예입니다.

예시 #1

슈퍼클래스에서 변수를 상속받기 위한 Java의 계층적 상속의 예입니다. 다음으로, 다음 예시를 통해 슈퍼클래스로부터 변수를 상속받기 위한 계층적 상속을 이해하기 위한 자바 코드를 작성해보겠습니다.

코드:

package P1;
class Employee{
float salary = 40000;
}
class PermanentEmp extends Employee{
double hike = 0.5;
}
class TemporaryEmp extends Employee{
double hike = 0.35;
}
public class HerInheritanceDemo
{
public static void main(String args[]){
PermanentEmp p = new PermanentEmp();
TemporaryEmp t = new TemporaryEmp();
// All objects of inherited classes can access the variable of class Employee
System.out.println("Permanent Employee salary is :" +p.salary);
System.out.println("Hike for Permanent Employee is:" +p.hike);
System.out.println("Temporary Employee salary is :" +t.salary);
System.out.println("Hike for Temporary Employee is :" +t.hike);
}
}

출력:

Java의 계층적 상속

위 코드와 같이 PermanentEmp 클래스와 TemporaryEmp 클래스가 서브클래스이고 Employee가 슈퍼클래스이고 이들 서브클래스의 객체가 슈퍼클래스의 변수에 접근하고 있는데, 이는 Java의 계층적 상속 개념이나 기능을 보여줍니다.

예시 #2

슈퍼클래스로부터 메소드를 상속받기 위한 Java의 계층적 상속의 예. 다음으로 이를 Java에서 보다 명확하게 이해하기 위해 다음 예제를 통해 Java 코드를 작성합니다.

코드:

package P1;
class Employee{
float salary = 40000;
void dispSalary()
{
System.<em><i>out</i></em>.println("The Employee salary is :" +salary);
}
}
class PermanentEmp extends Employee{
double hike = 0.5;
void incrementSalary()
{
System.out.println("The Permanent Employee incremented salary is :" +(salary+(salary * hike)));
}
}
class TemporaryEmp extends Employee{
double hike = 0.35;
void incrementSalary()
{
System.out.println("The Temporary Employee incremented salary is :" +(salary+(salary * hike)));
}
}
public class HerInheritanceDemo
{
public static void main(String args[]){
PermanentEmp p = new PermanentEmp();
TemporaryEmp t = new TemporaryEmp();
// All objects of inherited classes can access the method of class Employee
p.dispSalary();
p.incrementSalary();
t.dispSalary();
t.incrementSalary();
}
}

출력:

Java의 계층적 상속

위 코드에서와 같이 PermanentEmp 클래스와 TemporaryEmp 클래스가 서브클래스이고 Employee가 슈퍼클래스이고 이들 서브클래스의 객체가 슈퍼클래스의 메소드를 호출하고 있는데 이는 Java의 계층적 상속 개념이나 기능을 보여줍니다.

예시 #3

예를 들어 super 키워드를 사용하여 슈퍼클래스의 메서드를 호출하는 경우입니다. 다음으로, 다음 예제를 통해 super 키워드의 작동 방식을 더 명확하게 이해하기 위해 위의 Java 코드를 다시 작성합니다.

코드:

package P1;
class Employee{
float salary = 40000;
void dispSalary()
{
System.out.println("The Employee salary is :" +salary);
}
}
class PermanentEmp extends Employee{
double hike = 0.5;
void incrementSalary()
{
super.dispSalary();
System.out.println("The Permanent Employee incremented salary is :" +(salary+(salary * hike)) );
}
}
class TemporaryEmp extends Employee{
double hike = 0.35;
void incrementSalary()
{
super.dispSalary();
System.out.println("The Temporary Employee incremented salary is :" +(salary+(salary * hike)) );
}
}
public class HerInheritanceDemo
{
public static void main(String args[]){
PermanentEmp p = new PermanentEmp();
TemporaryEmp t = new TemporaryEmp();
// All objects of inherited classes can access the variable of class Employee
p.incrementSalary();
t.incrementSalary();
}
}

출력:

Java의 계층적 상속

위 코드와 같이 PermanentEmp 클래스와 TemporaryEmp 클래스가 하위 클래스이고 Employee가 슈퍼 클래스이고, 하위 클래스 메소드 내부에서 슈퍼 클래스 메소드가 “super” 키워드를 접두사로 호출하고 있습니다. super 키워드는 부모 클래스 객체의 변수와 메소드를 참조하는 데 사용되는 Java의 참조 변수입니다. 메인 메소드에서 서브클래스의 객체는 자신의 메소드를 호출하는데, 이는 다시 Java의 개념이나 기능을 보여줍니다.

결론

상속은 한 클래스가 다른 클래스의 모든 속성과 동작을 상속하는 기능입니다. Java의 상속 유형 중 하나는 Java의 계층적 상속입니다. 계층적 상속에서는 둘 이상의 클래스가 단일 클래스의 속성과 메서드를 상속합니다.

위 내용은 Java의 계층적 상속의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
이전 기사:Java의 다단계 상속다음 기사:Java의 다단계 상속