자바

[자바] abstract 추상

j9972 2022. 8. 5. 11:31
728x90

abstract 추상

abstract이 있는 메소드, 클래스는 직접적 사용할 수 없고, 상속을 통해서만 사용하도록 강제하는 것이다.
abstract은 미완성의 의미를 갖는다 . 메서드의 선언부만 작성하고 수행내용은 구현하지 않은 추상 메서드를 선언하는데 사용 ( 클래스, 메서드 )

 

기본 코드

abstract class AbstractTest {
    abstract void move();
}

 

// 추상클래스 ( 추상메서드가 아닌 메서드가 있을 수 있다. )
abstract class A { 
    public abstract int b();  // 추상 메서드
    public abstract int c(){System.out.println("heelo")};  // 에러 - 구현부가 있기에
    public void d() {
        System.out.println("world"):
    }
}

class B extends A {
    public int b() { // 오버라이딩 필수
        return 1;
    }
}

public class AbstractDemo{
    public static void main(String[] args) {
        // A obj = new A(); 이러면 에러가 난다
        B obj = new B();
    }
}