[Java] 추상클래스

Hyo Kyun Lee·2022년 1월 31일
0

Java

목록 보기
20/49

1. 추상클래스

말 그대로 추상적인, 특정지지 않고 범위가 포괄적인 클래스를 일컫는다.

부모 class로써 작용할 수는 있지만, 구체적이지 않은 특징으로 그것이 객체가 될 수는 없다.

2. 추상클래스의 선언

추상클래스는 보통 내부적으로 메소드가 abstract 키워드가 선언되어있다면, 해당 클래스도 이에 따라가서 abstract 한 클래스 즉 추상클래스가 된다.

public abstract class Bird{
    public abstract void sing();
    public void fly(){
    	System.out.println("flying");
    }
}

3. 상속과 함께 활용

추상클래스는 보통 부모클래스로 활용할 수 있고, 이에 따라 상속도 같이 활용한다면 효과적인 부분이 많다.

예를 들어 위의 Bird클래스에서 duck클래스를 상속받는다고 해보자.

public class duck extends Brid{
	public void sing(){
    	System.out.println("꽥꽥");
    } //override
}

위와 같이 추상클래스를 상속받아 추상메소드를 구체화한다는 점에서 활용가능하다.
※이때 추상메소드는 오버라이드하는 것과 같다.

public class duckTest{
	public void main(String[] args){
    	Duck duck = new Duck;
        duck.sing();
    }
}

이 후 위와 같이, main에서 해당 인스턴스 및 내부적인 메소드를 사용가능하다.

4. 인스턴스 생성 불가

public class duckTest{
	public static void main(String[] args){
    	Bird duck = new Bird; //불가
    }
}

위처럼 Bird라는 추상클래스는 인스턴스 생성이 불가능하다.

0개의 댓글