이 기사에서는 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 클래스의 하위 클래스입니다.
'→'의 아이
Java에서 하위 클래스는 하나의 슈퍼클래스만 가질 수 있습니다. 예를 들어 Dog 클래스는 Domesticated 슈퍼클래스와 Animal 슈퍼클래스를 가질 수 없으며 다음은 허용되지 않습니다.
즉, 서브클래스는 하나의 슈퍼클래스만 가질 수 있으며, 부모, 조부모, 증조부모가 여러 명 있을 수 없습니다.
결론적으로 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!