-
과제2 - CarTest개발자 수업/Java 2021. 10. 13. 09:23
구조 결과 /* * final 예약어 * 1) final 변수 : 값이 변경될 수 없는 상수 * 2) final 메서드 : 하위 클래스에서 재정의 할 수 없는 메서드 * 3) final 클래스 : 상속할 수 없는 클래스 */ // 추상 클래스 public abstract class Car { // 추상 메서드 public abstract void drive(); public abstract void stop(); public void startCar() { System.out.println("시동을 켭니다."); } public void turnOff() { System.out.println("시동을 끕니다."); } // 순서를 변경할 수 없도록 final로 고정 public final void run() { startCar(); drive(); stop(); turnOff(); } }
public class ManualCar extends Car { @Override public void drive() { System.out.println("사람이 운전합니다."); System.out.println("사람이 핸들을 조작합니다."); } @Override public void stop() { System.out.println("브레이크를 밟아서 정지합니다."); } }
public class AICar extends Car { @Override public void drive() { System.out.println("자율 주행합니다."); System.out.println("자동차가 스스로 방향을 바꿉니다."); } @Override public void stop() { System.out.println("스스로 멈춥니다."); } }
public class CarTest { public static void main(String[] args) { Car aicar = new AICar(); Car mcar = new ManualCar(); aicar.run(); System.out.println("-----------------------"); mcar.run(); } }
'개발자 수업 > Java' 카테고리의 다른 글
17. String 클래스 (0) 2021.10.13 16. Object 클래스 (0) 2021.10.13 15. 추상 클래스와 인터페이스 (0) 2021.10.13 14. 다형성 (0) 2021.10.11 13. Review (0) 2021.10.11