2023/JAVA_나도코딩 강의 공부

상속

luha oh 2023. 2. 28. 08:31

1. Camera.class ( 부모클래스에 해당 )

package chap_07.camera;

public class Camera { // 부모 클래스

    public String name;

    public Camera() { // 생성자
        this.name = "카메라";
    }

    public void takePicture(){
        // 사진 촬영
        System.out.println(this.name + " : 사진을 촬영합니다.");
    }

    public void recordVideo(){
        // 동영상 녹화
        System.out.println(this.name + " : 동영상을 녹화합니다.");
    }

}

 

 

 

2. FactoryCam.class (자식 클래스)

package chap_07.camera;

public class FactoryCam extends Camera { // 자식 클래스
    // 공장 카메라
    // 설정 : 화재 감지 기능을 가짐.

    public FactoryCam() {
        this.name="공장 카메라";
    }

    public void detectFire(){
        System.out.println("화재를 감지합니다.");
    }
}

 

 

 

3. SpeedCam ( 자식 클래스 )

package chap_07.camera;

public class SpeedCam extends Camera { // 자식 클래스
    // 과속 단속 카메라

    public SpeedCam() {
        this.name="과속단속 카메라";
    }

    public void checkSpeed(){
        // 속도 체크
        System.out.println("속도를 측정합니다.");
    }


    public void recognizeLicensePlate(){
        // 차량 번호 인식
        System.out.println("차량 번호를 인식합니다.");
    }




}

 

 

 

4. main

package chap_07;

import chap_07.camera.Camera;
import chap_07.camera.FactoryCam;
import chap_07.camera.SpeedCam;

public class _12_Inheritance {
    public static void main(String[] args) {
        // 상속
        // 하나의 클래스만 부모 클래스가 될 수 있다. 하나의 클래스만 상속 받을 수 있다.
        Camera camera=new Camera();
        FactoryCam factoryCam=new FactoryCam();
        SpeedCam speedCam=new SpeedCam();

        System.out.println(camera.name);
        System.out.println(factoryCam.name);
        System.out.println(speedCam.name);

        // 부모 클래스로부터 물려받은 메소드
        camera.takePicture();
        factoryCam.recordVideo();
        speedCam.takePicture();

        // 부모 클래스로부터 물려받지 않고 추가적으로 만든 메소드
        factoryCam.detectFire();
        speedCam.checkSpeed();
        speedCam.recognizeLicensePlate();



    }
}

실행 결과

'2023 > JAVA_나도코딩 강의 공부' 카테고리의 다른 글

다형성  (0) 2023.02.28
메소드 오버라이딩  (0) 2023.02.28
패키지  (0) 2023.02.28
생성자  (1) 2023.02.27
this  (0) 2023.02.27