[Java] Abstract Class & Method

Jane·2021년 1월 31일
1
post-thumbnail

추상화

  • 기존 클래스의 공통적인 부분을 뽑아 조상 클래스를 만드는 것

추상 클래스

  • 미완성 설계도
  • 인스턴스 생성 불가 → 추상 클래스는 해당 클래스를 상속하고 있는 자손클래스에 의해 완성된다.
  • 추상 메서드를 포함하고 있는 클래스

추상 메서드

  • 메서드의 내용이 상속받는 클래스에 따라 달라지는 것을 고려하여 선언부만 작성하고 구현부는 작성하지 않은 메서드
  • 주석을 통해 기능과 목적을 명시해주고, 괄호 대신 ;으로 마무리한다.

실습



class Main {
    public static void main(String[] args) {
        Unit[] group = {new Marine(), new Tank(), new Dropship()};
        for (Unit x : group) {
            x.move(100, 300);
        }
    }
}

abstract class Unit {
    int x, y;

    abstract void move(int x, int y);

    void stop() {
        /* 현재 위치에 정지 */
    }
}

class Marine extends Unit {
    @Override
    void move(int x, int y) {
        System.out.printf("Marine[x=%d, y=%d]\n", x, y);
    }
}

class Tank extends Unit {
    @Override
    void move(int x, int y) {
        System.out.printf("Tank[x=%d, y=%d]\n", x, y);
    }
}

class Dropship extends Unit {
    @Override
    void move(int x, int y) {
        System.out.printf("Dropship[x=%d, y=%d]\n", x, y);
    }
}

실행 결과

Source

  • 자바의 정석 (남궁성 저)

0개의 댓글