> Java > java지도 시간 > 계승

계승

Linda Hamilton
풀어 주다: 2025-01-19 18:08:10
원래의
192명이 탐색했습니다.

Java 상속 메커니즘에 대한 자세한 설명: 객체 지향 프로그램 구축의 초석

Java의 상속 메커니즘을 사용하면 객체가 상위 객체의 모든 속성과 동작을 상속할 수 있습니다. 이는 객체 지향 프로그래밍(OOP)의 핵심 개념입니다. 상속을 통해 기존 클래스를 기반으로 새 클래스를 만들고, 상위 클래스의 메서드와 필드를 재사용하고, 이를 기반으로 새 메서드와 필드를 추가할 수 있습니다.

상속이란 무엇입니까?

Java 상속 메커니즘을 사용하면 한 클래스(하위 클래스 또는 파생 클래스)가 다른 클래스(슈퍼클래스 또는 상위 클래스)의 속성과 메서드를 상속할 수 있습니다. 하위 클래스는 상위 클래스의 멤버(필드 및 메서드)에 액세스하여 재사용 규칙을 적용하고 클래스 계층 구조를 승격할 수 있습니다. 상속은 부모-자식 관계라고도 알려진 "IS-A" 관계를 구현합니다.

Java 상속을 사용하는 이유는 무엇인가요?

  • 코드 재사용: 상속은 코드 재사용성을 크게 향상시키고 동일한 기능 코드를 반복적으로 작성하는 것을 방지합니다.
  • 메서드 재작성(런타임 다형성 구현): (추가 예정)

상속 관련 용어

  • 클래스: 객체 생성을 위한 템플릿 또는 청사진인 공통 속성을 가진 객체 모음입니다.
  • 하위 클래스/하위 클래스: 파생 클래스, 확장 클래스 또는 하위 클래스라고도 하는 다른 클래스에서 상속되는 클래스입니다.
  • 슈퍼 클래스/상위 클래스: 하위 클래스가 특성을 상속하는 클래스로, 기본 클래스 또는 상위 클래스라고도 합니다.
  • 재사용성: 새 클래스를 생성할 때 기존 클래스 필드와 메서드를 재사용하기 위한 메커니즘입니다.

Java 상속 구문

<code class="language-java">class 子类名称 extends 超类名称 {
    // 方法和字段
}</code>
로그인 후 복사
로그인 후 복사

extends 키워드는 기존 클래스에서 파생된 새 클래스를 만드는 것을 의미합니다. "확장"은 확장된 기능을 의미합니다. Java 용어에서는 상속된 클래스를 상위 클래스 또는 슈퍼클래스라고 하며, 새 클래스를 하위 클래스 또는 하위 클래스라고 합니다.

계승

위 그림을 보면 Programmer가 서브클래스이고 Employee가 슈퍼클래스임을 알 수 있습니다. 둘의 관계는 Programmer IS-A Employee인데, 프로그래머가 일종의 직원이라는 뜻이다.

예: Programmer.java

<code class="language-java">class Employee {
    float salary = 40000;
}

class Programmer extends Employee {
    int bonus = 10000;

    public static void main(String args[]) {
        Programmer p = new Programmer();
        System.out.println("程序员薪资:" + p.salary);
        System.out.println("程序员奖金:" + p.bonus);
    }
}</code>
로그인 후 복사
로그인 후 복사

Java 상속 유형

클래스의 상속 관계에 따라 Java 상속은 크게 단일 상속, 다중 계층 상속, 계층 상속의 세 가지 유형으로 구분됩니다.

계승

참고: Java는 클래스를 통한 다중 상속을 지원하지 않습니다.

한 클래스가 여러 클래스로부터 상속받는 경우를 다중 상속이라고 합니다. 예: Java의 다중 상속

계승

단일 상속 예시

한 클래스가 다른 클래스를 상속하는 것을 단일 상속이라고 합니다. 아래 예에서 Dog 클래스는 Animal 클래스에서 상속되므로 단일 상속입니다.

Test계승.java

<code class="language-java">class Animal {
    void eat() {
        System.out.println("正在吃...");
    }
}

class Dog extends Animal {
    void bark() {
        System.out.println("汪汪...");
    }
}

class Test계승 {
    public static void main(String args[]) {
        Dog d = new Dog();
        d.bark();
        d.eat();
    }
}</code>
로그인 후 복사

다단계 상속 예시

상속 체인이 있는 경우 이를 다단계 상속이라고 합니다. 아래 예에서 BabyDog 클래스는 Dog 클래스에서 상속되고, 이 클래스는 다시 Dog 클래스에서 상속되므로 다중 수준 상속이 가능합니다. Animal

Test계승2.java

<code class="language-java">class 子类名称 extends 超类名称 {
    // 方法和字段
}</code>
로그인 후 복사
로그인 후 복사

계층적 상속 예시

두 개 이상의 클래스가 단일 클래스에서 상속받는 경우를 계층적 상속이라고 합니다. 아래 예에서 DogCat 클래스는 모두 Animal 클래스에서 상속되므로 계층적 상속이 적용됩니다.

Test계승3.java

<code class="language-java">class Employee {
    float salary = 40000;
}

class Programmer extends Employee {
    int bonus = 10000;

    public static void main(String args[]) {
        Programmer p = new Programmer();
        System.out.println("程序员薪资:" + p.salary);
        System.out.println("程序员奖金:" + p.bonus);
    }
}</code>
로그인 후 복사
로그인 후 복사

Java가 다중 상속을 지원하지 않는 이유는 무엇인가요? (추가예정)

복잡성을 줄이고 언어를 단순화하기 위해 Java는 클래스를 통한 다중 상속을 지원하지 않습니다.

메소드 재작성 및 메소드 오버로딩

  • 메서드 재정의: 하위 클래스는 상위 클래스에 선언된 메서드의 특정 구현을 제공합니다.
  • 메서드 오버로딩: 같은 클래스에서도 메소드 이름은 같지만 매개변수의 개수나 종류가 다릅니다.

final 키워드의 기능

final 키워드는 메소드 재정의 및 클래스 확장을 방지하는 데 사용됩니다.

  • final 필드: 재지정할 수 없습니다.
  • final 메서드: 재정의할 수 없습니다.
  • final 클래스: 상속할 수 없습니다.

참조 링크: https://www.php.cn/link/9b4192ee086949047cfc64d86d895c2e

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

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿