> Java > java지도 시간 > Java의 상속 및 다형성: 슈퍼클래스 및 서브클래스 사용

Java의 상속 및 다형성: 슈퍼클래스 및 서브클래스 사용

Linda Hamilton
풀어 주다: 2025-01-06 10:31:46
원래의
890명이 탐색했습니다.

이 기사에서는 Java의 상속이 어떻게 슈퍼클래스와 서브클래스 사이에 'is-a' 관계를 가지며, 이를 통해 서브클래스가 슈퍼클래스 기능을 상속하고 사용자 정의할 수 있는지 설명합니다. 다형성을 사용하면 서브클래스에서 고유한 동작을 정의할 수 있으므로 객체 지향 프로그래밍에서 코드 재사용과 유연성이 가능해집니다.


Java에서 상속 시 슈퍼 클래스(부모 클래스)와 하위 클래스(자식 클래스 또는 파생 클래스) 간의 관계는 하위 클래스가 기능을 상속하는 슈퍼 클래스의 특수 버전임을 암시하는 is-a 관계입니다(제한 사항은 다음과 같습니다). 적용)(CSU Global, n.d)에서 파생된 클래스입니다. 즉, 클래스 B가 클래스 A로부터 상속받는 경우 클래스 B는 클래스 A의 "a" 유형입니다. 이 관계를 통해 클래스 B는 클래스 A가 제공하는 모든 기능(제한 적용 가능)을 사용하는 동시에 자신의 고유한 기능을 추가할 수도 있습니다. 특정 기능 또는/또는 클래스 A의 일부 또는 전체 기능을 재정의합니다. 기능을 재정의하는 하위 클래스의 능력은 다형성의 한 형태입니다.

“다형성의 사전적 정의는 유기체나 종이 다양한 형태나 단계를 가질 수 있다는 생물학의 원리를 말합니다. 이 원칙은 객체 지향 프로그래밍 및 Java 언어와 같은 언어에도 적용될 수 있습니다. 클래스의 하위 클래스는 고유한 동작을 정의하면서도 상위 클래스와 동일한 기능 중 일부를 공유할 수 있습니다.”(The Java™ Tutorials, n.d.) 이는 공통 슈퍼클래스 유형을 공유하는 서로 다른 하위 클래스의 여러 객체를 처리할 때 특히 유용합니다.

예: 개, 고양이, 올빼미는 동물입니다.

슈퍼클래스

public class Animal {
    public void makeSound() {
        System.out.println("Makes a Sound");
    }
}
로그인 후 복사

동물의 하위 클래스

public class Domesticated extends Animal {
    public void friendly() {
        System.out.println("This animal is friendly.");
    }
}
로그인 후 복사

가축의 하위 클래스

public class Undomesticated extends Animal {
    public void notFriendly() {
        System.out.println("This animal is not friendly.");
    }
}
로그인 후 복사

가축의 하위 클래스

public class Cat extends Domesticated {
    @Override
    public void makeSound() {
        System.out.println("Meow");
    }
}
로그인 후 복사

Undomesticated의 하위 클래스

public class Owl extends Undomesticated {
    @Override
    public void makeSound() {
        System.out.println("Hoots");
    }
}
로그인 후 복사

결과를 출력하는 메인 클래스

public class inheritanceExample {
    public static void main(String[] args) {
        Dog myDog = new Dog();
        Cat myCat = new Cat();
        Owl redOwl = new Owl();

        System.out.println("MY Dog:");
        myDog.makeSound(); // Outputs: Bark
        myDog.friendly();  // Outputs: This animal is friendly.
        System.out.println();

        System.out.println("My Cat:");
        myCat.makeSound(); // Outputs: Meow
        myCat.friendly();  // Outputs: This animal is friendly.
        System.out.println();

        System.out.println("Red Owl:");
        redOwl.makeSound(); // Outputs: Hoot
        redOwl.notFriendly(); // Outputs: This animal is not friendly.
     }
}
로그인 후 복사

참고: Dog 및 Cat 클래스의 makeSound() 메서드는 Animal 클래스의 makeSound() 메서드를 재정의합니다.

또한 Dog 클래스는 Animal 클래스의 하위 클래스인 Domesticated 클래스의 하위 클래스입니다.

'→'의 아이
Inheritance and Polymorphism in Java: Using Superclasses and Subclasses

Java에서 하위 클래스는 하나의 슈퍼클래스만 가질 수 있습니다. 예를 들어 Dog 클래스는 Domesticated 슈퍼클래스와 Animal 슈퍼클래스를 가질 수 없으며 다음은 허용되지 않습니다.
Inheritance and Polymorphism in Java: Using Superclasses and Subclasses

즉, 서브클래스는 하나의 슈퍼클래스만 가질 수 있으며, 부모, 조부모, 증조부모가 여러 명 있을 수 없습니다.
Inheritance and Polymorphism in Java: Using Superclasses and Subclasses

결론적으로 Java의 상속을 통해 하위 클래스는 슈퍼클래스의 기능을 활용 및 확장하여 "is-a" 관계를 구현하고 다형성을 촉진할 수 있습니다. 이는 공통 슈퍼클래스 전체에서 공유 특성을 유지하면서 하위 클래스의 특정 동작을 활성화하여 코드 재사용성, 유연성 및 일관성을 향상시킵니다.


참고자료:

CUS 글로벌(n.d.). 모듈 1: 상속 작업 [대화형 강의]. Colorado State University Global, CSC372: 프로그래밍 II, 컴퓨터 공학과. 캔버스. 2024년 6월 8일에 검색함, https://csuglobal.instructure.com/courses/94948/pages/module-1-overview?module_item_id=4868813

Java™ 자습서(n.d.). Java 언어 학습: 인터페이스와 상속. 신탁. 2024년 6월 8일에 검색됨, https://docs.oracle.com/javase/tutorial/java/IandI/polymorphism.html


원본은 2024년 11월 1일 Level UP Coding에서 발행한 Medium의 Alex.omegapy에 게시되었습니다.

위 내용은 Java의 상속 및 다형성: 슈퍼클래스 및 서브클래스 사용의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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