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();
}
}