추상클래스

개념
- 추상 클래스는 인터페이스와 마찬가지로 하위 클래스에 구현 되어야 하는 기능을 선언하여 상속받는 하위 클래스가 구현하도록 하지만 인터페이스보다 느슨한 추상화를 제공함

 

  • 추상클래스와 인터페이스


I. 추상 클래스 (abstract class)


추상 클래스는 인터페이스와 마찬가지로 하위 클래스에 구현 되어야 하는 기능을 선언하여 상속받는 하위 클래스가 구현하도록 하지만 인터페이스보다 느슨한 추상화를 제공함

인터페이스는 상수와 추상메서드만을 포함하지만 추상 클래스는 구현된 메서드와 멤버변수를 포함할 수 있음
 

  • 하나 이상의 추상 메서드를 가져야 하며 이 추상 메서드는 인터페이스와 마찬가지로 구현부를 가지지 않음
  • 추상 클래스를 이용해 바로 객체를 생성할 수 없음.
  • 추상 클래스를 상속한 클래스는 반드시 추상 메서드를 구현해야 함.
  • 추상 클래스는 인터페이스보다 느슨한 추상화를 제공하며 일반적인 클래스의 멤버들을 가질 수 있음

추상클래스 표기법

추상 클래스의 표기법은 클래스명을 이텔릭체로 표기

UNI00001e844ea4

 

추상클래스 선언

추상클래스 구현

//추상 클래스인 AbstractCounter 클래스를 선언

abstract class AbstractCounter {

    // 상수를 정의하기위해 final 지시자를 사용

    protected final int MAX_COUNT=3;

    // 멤버 변수를 count를 선언한다.

    protected int count = 0;

    // 일반 메서드 init()을 정의한다.

    public void init() {

        count = 0;

    }

     // 추상 메서드 addCount()를 선언한다.

    abstract public int addCount();

}

 

//추상클래스인 AbstractCounter 클래스를 상속받기위해

//extends 지시자를 사용

public class Counter extends AbstractCounter {

    // AbstractCounter 클래스의 추상 메서드인

    // addCount()를 구현

    public int addCount() {

        if(count==MAX_COUNT)

            return (count=0);

       

        return ++count;

    }

   

    public static void main(String args[]) {

        AbstractCounter counter = new Counter();

        counter.init();

       

        for(int count = 0; count < 5; count++ ) {

            System.out.println(counter.addCount());

        }

    }

}

 

댓글