본문 바로가기

개발 이야기/CC-Java

[1주차] 자동차 경주 게임 - Step3. 피드백(4)_추상화

* 하기 내용은 프로그래머스 자바 입문 강의 및 소스코드 + 구글링 + 제 개인적 견해로 작성된 내용입니다.

4. 추상화

1) 추상클래스

  • 구체적이지 않은 클래스를 의미
  • 독수리, 타조는 구체적인 새를 지칭하는데, '새'는 구체적이지 않다.
  • 이런 것을 구현한 클래스가 추상 클래스이다.

2) 추상클래스 정의하기

  • 클래스 앞에 abstract 키워드를 이용해서 정의
  • 미완성의 추상 메소드를 포함 할 수 있다.
  • 추상클래스는 인스턴스를 생성 할 수 없다.
  • 추상화 사용 시, 유지/보수가 용이하다.
...더보기

추상메소드란, 내용이 없는 메소드이다. 즉, 구현이 되지 않은 메소드이다.

추상메소드는 리턴 타입 앞에 abstract라는 키워드를 붙여야 한다.

1
2
3
4
5
6
7
/* 추상클래스 예시 */
    public abstract class Bird{
        public abstract void sing();
 
        public void fly(){
            System.out.println("날다.");
        }
    }
Colored by Color Scripter

 

3) 추상클래스를 상속받는 클래스 생성하기

  • 추상 클래스를 상속받은 클래스는 추상 클래스가 갖고 있는 추상 메소드를 반드시 구현해야 한다.
  • 추상 클래스를 상속받고, 추상 클래스가 갖고 있는 추상 메소드를 구현하지 않으면 해당 클래스도 추상 클래스가 된다.
1
2
3
4
5
6
    public class Duck extends Bird{
        @Override
        public void sing() {
            System.out.println("꽥꽥!!");
        }
    }
hColored by Color Scripter

- 사용하기

1
2
3
4
5
6
7
8
9
    public class DuckExam { 
        public static void main(String[] args) {
            Duck duck = new Duck();
            duck.sing();
            duck.fly();
 
            //Bird b = new Bird();
        }   
    }
Colored by Color Scripter

 

+ 참고하면 좋은 url