* 하기 내용은 프로그래머스 자바 입문 강의 및 소스코드 + 구글링 + 제 개인적 견해로 작성된 내용입니다.
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();
//Bird b = new Bird();
}
}
Colored by Color Scripter
|
+ 참고하면 좋은 url
- 인터페이스와 추상화의 차이점: http://bitly.kr/tN9KM1
-
super와 부모생성자:: https://programmers.co.kr/learn/courses/5/lessons/192
'개발 이야기 > CC-Java' 카테고리의 다른 글
[2주차] 로또게임 - Step2. Merge 후 최종 피드백 반영하기 (0) | 2019.09.06 |
---|---|
[2주차] 로또게임 - Step2. 피드백 (0) | 2019.07.18 |
[1주차] 자동차 경주 게임 - Step3. 피드백(3)_Interface (0) | 2019.07.02 |
[1주차] 자동차 경주 게임 - Step3. 피드백(2)_변수의 scope와 static (0) | 2019.07.02 |
[1주차] 자동차 경주 게임 - Step3. 피드백(1)_객체 선언 (0) | 2019.06.30 |