프로그래밍언어/Java
[Java] : 추상 클래스, abstract class란?
오주현
2022. 1. 17. 18:10
반응형
추상 클래스란?
추상 클래스는 직접 인스턴스를 생성할 수 없는 클래스이다.
추상 클래스를 사용하기 위해서는 자식 클래스에서 추상 클래스를 상속 받고 자식 클래스의 인스턴스를 생성해야 한다.
추상 클래스를 만들기 위해서는 abstract 키워드를 앞에 붙여줘서 사용하면 된다.
예시 코드
abstract class CarSetting{
int speed = 0;
String color;
void upSpeed(int speed) {
this.speed += speed;
}
}
먼저 abstract를 붙여 추상화 클래스를 만들어준다.
추상화 클래스에 speed와 color을 선언, 초기화 해주고 upSpeed()메서드를 만들어 준다.
class Sedan extends CarSetting {
}
Sedan은 추상 클래스를 상속 받은 상태로 놔둔다.
class Truck extends CarSetting {
}
Truck 클래스도 마찬가지로 추상 클래스를 상속 받은 상태로 놔둔다.
public class Car {
public static void main(String[] args) {
Car car1 = new CarSetting(); //오류 코드이다.
Sedan sedan = new Sedan();
System.out.println("Sedan 인스턴스 생성");
Truck truck = new Truck();
System.out.println("Truck 인스턴스 생성");
}
}
각각 인스턴스를 생성해 주고 실행을 시켜본다.
CarSetting이 추상 클래스여서 인스턴스를 생성할 수 없다는 오류가 뜨게 된다.
public class Car {
public static void main(String[] args) {
//Car car1 = new CarSetting();
Sedan sedan = new Sedan();
System.out.println("Sedan 인스턴스 생성");
Truck truck = new Truck();
System.out.println("Truck 인스턴스 생성");
}
}
그럼 추상 클래스의 인스턴스 만드는 코드를 주석 처리하고 돌려보면
이제야 정상적으로 오류 없이 출력이 되는 것을 확인할 수 있다.
이처럼 abstract를 사용한 추상 클래스는 인스턴스를 스스로 생성할 수 없기 때문에 상속을 통해 자식 클래스의 인스턴스를 생성하는 식으로 활용해야 한다.
반응형