티스토리 뷰
728x90
추상메소드는 속빈 껍데기
- 물려받은 빚이다. 물려받은 일을 본인한테 맞게 해야한다. 무시할 수 없고 꼭 구현해야한다.
- 그리고 빚을 다값을때까지 클레스 앞에는 abstract 가 붙는다 like.. 빚쟁이마크
- 그리고 대대손손 물려준다고 이해하면 편하다
추상클레스안에 템플릿 메소드를 넣어놓고 메소드 수행 순서를 고정시켜 놓을 수도 있다.
템플릿 메소드는 final 로 선언해서 고정한다
근데 왜 오버라이딩을 써도 되는데 왜 추상메소드로 사용할까?
설계단계에서 용이하기때문에.. 꼭 구현해야하는 메소드를 놓치지 않을 수 있다..
그러나 실무에서 잘 쓰지는 않는다고 한다..
밑의 예제를 써보면 추상클래스에 대한 이해가 쉽다..
// Cartest
package carDemo;
public class CarTest {
public static void main(String[] args) {
// TODO Auto-generated method stub
Bus bus = new Bus();
AutoCar autoCar = new AutoCar();
bus.run();
autoCar.run();
bus.refuel();
autoCar.refuel();
bus.takePassenger();
autoCar.load();
bus.stop();
autoCar.stop();
}
}
//car
package carDemo;
public abstract class Car {
public abstract void run();
public abstract void refuel();
public void stop() {
System.out.println("차가 멈춥니다.");
}
}
//Bus
package carDemo;
public class Bus extends Car {
public void run() {
System.out.println("버스가 달립니다.");
}
public void refuel() {
System.out.println("천연가스를 주유합니다.");
}
public void takePassenger() {
System.out.println("승객을 버스에 태웁니다.");
}
}
// AutoCar
package carDemo;
public class AutoCar extends Car {
public void run() {
System.out.println("자동차가 달립니다.");
}
public void refuel() {
System.out.println("휘발류를 주유합니다.");
}
public void load() {
System.out.println("짐을 실습니다.");
}
}
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- tkgiddl
- 쉬운개념
- 등산웹개발
- 프레임워크
- 정규화
- static
- SQL
- 라이브러리란
- SQLD
- Java
- 리츠란
- 등산앱개발
- 등산어플
- JAVA프로젝트
- 추상클레스
- 컬렉션프레임워크
- 등산로API
- 프레임워크 라이브러리 차이점
- SET연산자
- 모바일앱만들기
- Spring프로젝트
- 스프링부트
- 앱만들기
- 스프링
- 하이브리드앱만들기
- select사용법
- map
- 모바일웹만들기
- 프레임워크란
- 스프링개념
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
글 보관함