Car.java

    package kr.or.kihd.overriding2;
    
    public class Car {
    	
    	int speed; 
    	
    	public Car() {
    
    	}
    
    	public Car(int speed) {
    		this.speed = speed;
    	}
    	
    	//메서드 앞에 final이 붙으면 상속이 되지 않는다. 자손에게 오버라이딩을 할수 없다.
    	//메서드 앞에 final이오면 마지막 메서드라고 생각하자.
    	public final void speedUp() {
    		this.speed += 10;
    		System.out.println("차가 "+ this.speed + "속도로 달립니다.");
    	}
    	
    	public void speedDown() {
    		this.speed -= 10;
    		System.out.println("차가 "+ this.speed + "속도로 달립니다.");
    	}
    	
    	public void stop() {
    		System.out.println("차가 멈춥니다.");
    	}
    	
    }
    


    SportCar.java

    package kr.or.kihd.overriding2;
    
    public class SportCar extends Car{
    	
    	public SportCar() {
    		
    	
    	}
    	
    	public SportCar(int speed) {
    		this.speed = speed;
    		
    	}
    	
    	@Override
    	public void stop() {
    		System.out.println("스포츠 차가 멈춥니다.");
    		
    	}
    
    }
    

     

    CarTest.java

    package kr.or.kihd.overriding2;
    
    public class CarTest {
    	
    	public static void main(String[] args) {
    		Car car = new Car(80);
    		car.speedUp();
    		car.speedDown();
    		car.stop();
    		
    		SportCar sportCar = new SportCar(150);
    		sportCar.speedUp(); 	//조상클래스의 speedUp() 호출가능
    		sportCar.speedDown();	//조상클래스의 speedDown() 호출가능
    		sportCar.stop();		//자손클래스의 stop() 호출
    	}
    	
    }
    
    • 네이버 블러그 공유하기
    • 네이버 밴드에 공유하기
    • 페이스북 공유하기
    • 카카오스토리 공유하기
    loading