> Java > java지도 시간 > 실제 예제를 통해 Java의 상속 이해

실제 예제를 통해 Java의 상속 이해

Mary-Kate Olsen
풀어 주다: 2025-01-03 16:35:42
원래의
173명이 탐색했습니다.

실제 예제를 통해 Java의 상속 이해

상속은 한 클래스가 다른 클래스의 속성(속성 및 메서드)을 획득할 수 있도록 하는 객체지향 프로그래밍(OOP)의 핵심 개념입니다. Java에서는 상속이 확장 키워드를 사용하여 구현되며 "is-a" 관계를 나타냅니다. 이 글에서는 실제 예제를 통해 Java에서의 상속에 대해 설명합니다.

코드 예제

// Defining a class
class Animal {
    // General attributes
    protected String colour;
    protected String breed;
    protected int age;

    // General methods
    public String sleep() {
        return "Both cats and dogs sleep";
    }

    public String eat() {
        return "They also eat";
    }

    // Constructor
    public Animal(String colour, String breed, int age) {
        this.colour = colour;
        this.breed = breed;
        this.age = age;
    }

    // Getters and setters
    public String getColour() {
        return colour;
    }

    public void setColour(String colour) {
        this.colour = colour;
    }

    public String getBreed() {
        return breed;
    }

    public void setBreed(String breed) {
        this.breed = breed;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }
}

// Cat class inheriting from Animal class
class Cat extends Animal {
    private String catName;

    public Cat(String colour, String breed, int age, String catName) {
        super(colour, breed, age); // Call the parent class constructor
        this.catName = catName;
    }

    public String getCatName() {
        return catName;
    }

    public void setCatName(String catName) {
        this.catName = catName;
    }

    public String catSound() {
        return "Cat meows!";
    }
}

// Dog class inheriting from Animal class
class Dog extends Animal {
    private String dogName;

    public Dog(String colour, String breed, int age) {
        super(colour, breed, age);
    }

    public String getDogName() {
        return dogName;
    }

    public void setDogName(String dogName) {
        this.dogName = dogName;
    }

    public String dogSound() {
        return "Dog barks!";
    }
}

public class Demo {
    public static void main(String[] args) {
        Cat myCat = new Cat("Brown", "Persian", 2, "Tom");
        Dog myDog = new Dog("Black", "Labrador", 3);

        // Display Cat details
        System.out.println("Cat's Name: " + myCat.getCatName());
        System.out.println("Cat's Colour: " + myCat.getColour());
        System.out.println("Cat's Breed: " + myCat.getBreed());
        System.out.println("Cat's Age: " + myCat.getAge());
        System.out.println("Cat Sound: " + myCat.catSound());
        System.out.println("Cat Behavior: " + myCat.eat() + " and " + myCat.sleep());

        // Display Dog details
        System.out.println("Dog's Colour: " + myDog.getColour());
        System.out.println("Dog's Breed: " + myDog.getBreed());
        System.out.println("Dog's Age: " + myDog.getAge());
        System.out.println("Dog Sound: " + myDog.dogSound());
    }
}
로그인 후 복사

코드의 주요 개념

상위 클래스(동물):

  • 모든 동물이 공유하는 공통 속성(색깔, 품종, 나이)과 방법(수면, 먹기)을 정의합니다.
  • 이러한 속성을 초기화하는 생성자를 제공합니다.
  • 캡슐화를 위한 getter 및 setter가 포함됩니다.

어린이 수업(고양이와 개):

Understanding Inheritance in Java Through a Practical Example
Understanding Inheritance in Java Through a Practical Example

  • Animal 클래스를 확장하고 해당 속성과 메서드를 상속합니다.
  • 특정 속성(catName, dogName) 및 동작(catSound, dogSound)을 추가합니다.
  • super 키워드를 사용하여 상위 클래스 생성자를 호출하고 상속된 속성을 초기화합니다.

데모 수업:

  • 프로그램의 진입점 역할을 합니다.
  • Cat 및 Dog 클래스의 객체를 생성하고 해당 속성과 메서드에 액세스하는 방법을 보여줍니다.

상속의 이점

  • 코드 재사용성: Cat 및 Dog 클래스는 Animal 클래스의 코드를 재사용합니다.
  • 확장성: Animal 클래스를 확장하여 새로운 하위 클래스(예: Bird, Fish)를 쉽게 추가할 수 있습니다.
  • 다형성: 수면 및 식사와 같은 공유 방법은 특정 동작을 제공하기 위해 하위 클래스에서 재정의될 수 있습니다.

프로그램의 출력

Cat's Name: Tom
Cat's Colour: Brown
Cat's Breed: Persian
Cat's Age: 2
Cat Sound: Cat meows!
Cat Behavior: They also eat and Both cats and dogs sleep
Dog's Colour: Black
Dog's Breed: Labrador
Dog's Age: 3
Dog Sound: Dog barks!

로그인 후 복사

내 GitHub
자바 저장소

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

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