오답노트

[Java] 추상화 본문

Java

[Java] 추상화

권멋져 2023. 7. 8. 17:09

추상화

정의되지 않은 함수나 클래스를 의미한다. 추상화 클래스는 자식 클래스가 상속 받아 사용할 수 있다.

 

추상 클래스 선언

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 void run() {
		startCar();
		drive();
		stop();
		turnOff();
	}
}

 

추상 클래스 상속

public class AICar extends Car{
	
	@Override
	public void drive() {
		System.out.println("자율 주행을 합니다.");
		System.out.println("자동차가 스스로 방향을 바꿉니다.");
	}
	
	@Override
	public void stop() {
		System.out.println("자율 주행을 멈춥니다.");
	}

}

public class ManualCar extends Car{

	@Override
	public void drive() {
		System.out.println("사람이 주행을 합니다.");
		System.out.println("사람이 핸들을 바꿉니다.");
	}

	@Override
	public void stop() {
		System.out.println("장애물 앞에서 차를 멈춥니다.");		
	}

}

위 두 클래스는 모두 Car라는 추상 클래스를 상속 받았다. 하지만 두 클래스는 같은 행위를 하더라도 다른 특성을 가지고 있기 때문에 정의된 내용은 모두 다르다.

 

이처럼 같은 매소드를 사용하지만 구체적으로 다른 로직을 가지게 될 때 활용한다.

'Java' 카테고리의 다른 글

[Java] 스트림  (0) 2023.07.10
[Java] 람다식  (0) 2023.07.10
[Java] 지역 내부 클래스와 익명 내부 클래스  (0) 2023.07.10
[Java] 인터페이스  (0) 2023.07.08
[Java] 유형에 따른 사용 메모리 정리  (0) 2023.07.08