자바 튜토리얼 - 9 상속

10209 단어 beginnerstutorialjava

소개



상속은 부모 클래스에서 속성과 동작을 상속하는 하위 클래스를 만드는 메커니즘입니다. 기본적으로 Java에서 생성된 클래스는 Object 클래스에서 자동으로 상속됩니다.

일반적으로 부모 클래스는 엔터티의 일반적인 추상화입니다. 하위 클래스는 엔터티의 특정 추상화입니다. 상속 메커니즘은 이 그림에 설명되어 있습니다.



상속 만들기



상속을 만들려면 extends 키워드 다음에 부모 클래스를 사용하십시오. 이 예제에서는 CarRaceCar 라는 두 개의 클래스가 생성됩니다. Car는 상위 클래스 역할을 하고 RaceCar는 하위 클래스 역할을 합니다. CarRaceCar 사이의 관계는 아래 그림에 설명되어 있습니다.



자동차 등급

public class Car {
    private String manufacturer;
    private String model;

    public Car(String manufacturer, String model) {
        this.manufacturer = manufacturer;
        this.model = model;
    }

    public void run() {
        System.out.println("Running...");
    }

    public String getManufacturer() {
        return manufacturer;
    }

    public void setManufacturer(String manufacturer) {
        this.manufacturer = manufacturer;
    }

    public String getModel() {
        return model;
    }

    public void setModel(String model) {
        this.model = model;
    }
}



RaceCar 클래스

public class RaceCar extends Car{
    // additional field for race car class
    private String teamName;

    public RaceCar(String manufacturer, String model, String teamName) {
        // call the parent's constructor using super()
        super(manufacturer, model);
        this.teamName = teamName;
    }

    // implement run() for race car class
    @Override
    public void run() {
        System.out.println("Running with racing spec");
    }

    public String getTeamName() {
        return teamName;
    }

    public void setTeamName(String teamName) {
        this.teamName = teamName;
    }
}



메인 클래스

public class MyApp {
    public static void main(String[] args) {
        RaceCar car = new RaceCar("Porsche","911 GT3","Manthey Racing");
        car.run();

    }
}



산출

Running with racing spec



위의 코드를 기반으로 RaceCarCar 클래스의 모든 필드와 메서드를 확장하므로 Car 클래스 내부의 필드와 메서드는 RaceCar 클래스에서도 사용할 수 있습니다. super()RaceCar 생성자 내부에서 사용되어 부모의 생성자를 호출합니다.
RaceCar 클래스는 Car 주석이 있는 run()라는 @Override 클래스의 메서드를 재정의합니다. @Override는 기본적으로 이 경우 run() 메서드의 부모 메서드에서 특정 구현을 정의하는 것을 의미합니다.

The simple way to understand the inheritance code is replace the extends with is a word.



이 경우 RaceCarCar이므로 RaceCar 클래스의 객체를 Car 유형의 변수에 저장할 수 있습니다.

public class MyApp {
    public static void main(String[] args) {
        Car raceCar = new RaceCar("Toyota","GT-One","Toyota Racing");
        raceCar.run();
    }
}



산출

Running with racing spec



위의 cove를 기반으로 run() 메서드는 RaceCar 클래스에서 호출됩니다.

메모



Java에서는 다중 상속이 지원되지 않습니다. 다중 상속은 클래스가 많은 부모 클래스를 상속할 수 있음을 의미합니다. 이것은 다중 상속의 예입니다.



다단계 상속은 Java에서 지원됩니다. 이것은 다단계 상속의 예입니다.



출처


  • 여기link에서 상속에 대해 자세히 알아보십시오.

  • 이 글이 자바 프로그래밍 언어를 배우는 데 도움이 되었으면 합니다. 생각이나 의견이 있으면 아래 토론 섹션에 작성할 수 있습니다.

    좋은 웹페이지 즐겨찾기