추상 클래스
구체적이지 않은 클래스를 의미 버스, 스포츠카는 구체적인 차를 지칭하는데 자동차, 새 이런 것은 구체적이지 않음, 이런 것을 구현한 클래스를 '추상 클래스'라고 함
추상 클래스 정의하기
- 추상 클래스는 클래스 앞에 'abstract' 키워드를 사용하여 정의
- 추상 클래스는 미완성의 추상 메소드를 포함할 수 있음 (추상 메소드도 리턴 타입 앞에 'abstract' 키워드를 사용하여 정의)
- 메소드가 하나라도 추상 메소드인 경우, 해당 클래스는 추상 클래스가 됨
- 추상 메소드는 인스턴를 생성할 수 없음
public abstract class Car{
public abstract void stop(); public void run(){ System.out.println("자동차가 앞으로 가는 중"); } }
추상 클래스를 상속받는 클래스 생성
- 추상 클래스를 상속받은 클래스는 추상 클래스가 갖고 있는 추상 메소드를 반드시 구현해야 함
- 추상 클래스를 상속받고, 추상 클래스가 갖고 있는 추상 메소드를 구현하지 않으면 해당 클래스도 추상 클래스가 됨
public class Bus extends Car{ @Override public void stop() { System.out.println("자동차가 멈추는 중"); } }
사용 하기
public class AbstractStudy { public static void main(String[] args) { Bus bus = new Bus(); bus.run(); bus.stop(); }
}
참고 : tryhelloworld.co.kr
'4. Programming > 4.1 JAVA' 카테고리의 다른 글
29 - 오버라이딩(overriding) (0) | 2016.06.20 |
---|---|
28 - Super와 부모 생성자 (0) | 2016.06.19 |
26 - 접근 제한자 (0) | 2016.06.16 |
25 - 상속 (0) | 2016.06.15 |
24 - 메소드 오버로딩(Overloading) (0) | 2016.06.14 |