오답노트
[Java] 추상화 본문
추상화
정의되지 않은 함수나 클래스를 의미한다. 추상화 클래스는 자식 클래스가 상속 받아 사용할 수 있다.
추상 클래스 선언
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 |