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

이 기사에서는 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
Java 플랫폼 독립성 : OS의 차이점Java 플랫폼 독립성 : OS의 차이점May 16, 2025 am 12:18 AM

다양한 운영 체제에서 Java의 성능에 미묘한 차이가 있습니다. 1) JVM 구현은 핫스팟 및 OpenJDK와 같은 성능 및 쓰레기 수집에 영향을 미칩니다. 2) 파일 시스템 구조 및 경로 분리기는 다르므로 Java 표준 라이브러리를 사용하여 처리해야합니다. 3) 네트워크 프로토콜의 차별적 구현은 네트워크 성능에 영향을 미칩니다. 4) GUI 구성 요소의 외관과 동작은 시스템마다 다릅니다. 표준 라이브러리 및 가상 기계 테스트를 사용하면 이러한 차이의 영향을 줄이고 Java 프로그램을 통해 원활하게 실행할 수 있습니다.

Java의 가장 좋은 기능 : 객체 지향 프로그래밍에서 보안에 이르기까지Java의 가장 좋은 기능 : 객체 지향 프로그래밍에서 보안에 이르기까지May 16, 2025 am 12:15 AM

javaoffersrobustobject-eientedprogramming (OOP) 및 top-notchsecurityfeatures.1) oopinjavaincludesclasses, 객체, 상속, 다형성, 및 캡슐화, 2) inablingflexibleantaintainableystems.2) secere-featecludejavirtmachine (jVM)

JavaScript 대 Java를위한 최고의 기능JavaScript 대 Java를위한 최고의 기능May 16, 2025 am 12:13 AM

javaScriptandjavahavedistInctStrengths : javaScriptexcelsindynamictypingandasynchronousprogramming, whilejavaisrobustwithstrongoopandtyping.1) javaScript'sdynamicnatureallowsforrapiddevelopmentand prothotyping, withasync/withasynon-blockingi/o.2)

Java 플랫폼 독립성 : 혜택, 제한 및 구현Java 플랫폼 독립성 : 혜택, 제한 및 구현May 16, 2025 am 12:12 AM

javaachievesplatforminccendenceThermeThoughthejavavirtualMachine (JVM) 및 BYTECODE.1) thejvmGretsByTecode, thesAmeCodetorUnonOnonAnyPlatFormwithajvm.2) bytecodeiscomeDeDfromjavasourcodeanDisplatform-howhowhowhownectection, howludection, howludectionnectection

Java : 실제 단어의 플랫폼 독립성Java : 실제 단어의 플랫폼 독립성May 16, 2025 am 12:07 AM

java'splatforminccendenceMeansapplicationsCannonanyplatformwithajvm, "WriteOnce, Runanywhere"를 활성화하지만, 도전적인 jvminconsistencies, libraryportability 및 andperformancevariations.toaddressthese : 1) Usecross-platformtestingtools, 2).

JVM 성능 대 기타 언어JVM 성능 대 기타 언어May 14, 2025 am 12:16 AM

JVM 'sperformanceIscompetitive, ontotherRuntimes, 안전 및 생산성을 제공합니다

Java 플랫폼 독립성 : 사용의 예Java 플랫폼 독립성 : 사용의 예May 14, 2025 am 12:14 AM

javaachievesplatformincendenceThermeThoughthejavavirtualMachine (JVM), codeiscompiledintobytecode, notmachine-specificcode.2) bytecodeistredbythejvm, anblingcross- shoughtshoughts

JVM 아키텍처 : Java Virtual Machine에 대한 깊은 다이빙JVM 아키텍처 : Java Virtual Machine에 대한 깊은 다이빙May 14, 2025 am 12:12 AM

thejvmisanabstractcomputingmachinecrucialforrunningjavaprogramsduetoitsplatform-independentarchitection.itincludes : 1) classloaderforloadingclasses, 2) runtimeDataAreaFordatorage, 3) executionEnginewithgringreter, jitcompiler 및 ggarocubucbugecutec

See all articles

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

Video Face Swap

Video Face Swap

완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

Nordhold : Fusion System, 설명
1 몇 달 전By尊渡假赌尊渡假赌尊渡假赌
<exp exp> 모호한 : 원정 33- 완벽한 크로마 촉매를 얻는 방법
2 몇 주 전By尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

안전한 시험 브라우저

안전한 시험 브라우저

안전한 시험 브라우저는 온라인 시험을 안전하게 치르기 위한 보안 브라우저 환경입니다. 이 소프트웨어는 모든 컴퓨터를 안전한 워크스테이션으로 바꿔줍니다. 이는 모든 유틸리티에 대한 액세스를 제어하고 학생들이 승인되지 않은 리소스를 사용하는 것을 방지합니다.

SublimeText3 영어 버전

SublimeText3 영어 버전

권장 사항: Win 버전, 코드 프롬프트 지원!

MinGW - Windows용 미니멀리스트 GNU

MinGW - Windows용 미니멀리스트 GNU

이 프로젝트는 osdn.net/projects/mingw로 마이그레이션되는 중입니다. 계속해서 그곳에서 우리를 팔로우할 수 있습니다. MinGW: GCC(GNU Compiler Collection)의 기본 Windows 포트로, 기본 Windows 애플리케이션을 구축하기 위한 무료 배포 가능 가져오기 라이브러리 및 헤더 파일로 C99 기능을 지원하는 MSVC 런타임에 대한 확장이 포함되어 있습니다. 모든 MinGW 소프트웨어는 64비트 Windows 플랫폼에서 실행될 수 있습니다.

mPDF

mPDF

mPDF는 UTF-8로 인코딩된 HTML에서 PDF 파일을 생성할 수 있는 PHP 라이브러리입니다. 원저자인 Ian Back은 자신의 웹 사이트에서 "즉시" PDF 파일을 출력하고 다양한 언어를 처리하기 위해 mPDF를 작성했습니다. HTML2FPDF와 같은 원본 스크립트보다 유니코드 글꼴을 사용할 때 속도가 느리고 더 큰 파일을 생성하지만 CSS 스타일 등을 지원하고 많은 개선 사항이 있습니다. RTL(아랍어, 히브리어), CJK(중국어, 일본어, 한국어)를 포함한 거의 모든 언어를 지원합니다. 중첩된 블록 수준 요소(예: P, DIV)를 지원합니다.

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구