ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 과제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

    댓글