반응형
추상 클래스란?
추상 클래스는 직접 인스턴스를 생성할 수 없는 클래스이다.
추상 클래스를 사용하기 위해서는 자식 클래스에서 추상 클래스를 상속 받고 자식 클래스의 인스턴스를 생성해야 한다.
추상 클래스를 만들기 위해서는 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를 사용한 추상 클래스는 인스턴스를 스스로 생성할 수 없기 때문에 상속을 통해 자식 클래스의 인스턴스를 생성하는 식으로 활용해야 한다.
반응형
'프로그래밍언어 > Java' 카테고리의 다른 글
[Java] : 인터페이스, interface (0) | 2022.01.17 |
---|---|
[Java] : 오버라이딩을 제한하는 final (0) | 2022.01.17 |
[Java] : method overriding (0) | 2022.01.17 |
[Java] : 상속을 허용하는 protected (0) | 2022.01.17 |
[Java] : 상속을 제한하는 private (0) | 2022.01.17 |
댓글