Java 추상클래스의 작성1
by 볼빵빵오춘기추상클래스의 작성
여러 클래스에 공통적으로 사용될 수 있는 추상클래스를 바로 작성하거나 기존클래스의 공통 부분을 뽑아서 추상클래스를 만든다.
더보기
⇒ 공통부분을 빼냄으로써 중복을 제거하고 코드가 간결해졌다.
Object에 담았을때와 비교해보면
예제 코드
더보기
abstract class Unit{
int x, y;
abstract void move(int x, int y);
void stop() { /* 현재 위치에 정지 */ }
}
class Marine extends Unit{ // 보병
void move(int x, int y) {
System.out.println("Marind[x="+x+", y="+y+"]");
}
void stimPack() { /* 스팀팩을 사용한다. */ }
}
class Tank extends Unit{ // 탱크
void move(int x, int y) {
System.out.println("Tank[x="+x*2+", y="+y*2+"]");
}
void changeMode() { /* 공격모드를 변환한다. */ }
}
class Dropship extends Unit{ // 탱크
void move(int x, int y) {
System.out.println("Dropship[x="+x*3+", y="+y*3+"]");
}
void changeMode() { /* 공격모드를 변환한다. */ }
}
public class PlayerTest {
public static void main(String[] args) {
Unit[] group = {new Marine(),new Tank(),new Dropship()}; // 코드1
for(int i=0;i<group.length;i++)
group[i].move(200,100);
}
}
⇒ 코드1에서 Unit[] 이 아니라 Object로 변경해서 차이점 확인해보면 더 확실히 알 수 있음.
정리하자면
- 기존 클래스의 공통부분을 뽑아서 추상클래스로 작성하자 > 코드 간결해진다.
- 여러종류의 클래스를 배열에 담아서 한번에 이동 가능하다. > 다형성의 장점!
- unit[] group = { new Marine(), new Tank(), new Dropship() }; > 배열생성, 초기화 한번에 한 문장으로 가능하다. [위의 예시 참고]
추상클래스 작성(feat. 그림으로 보기)
추상클래스를 작성함으로써 장점
- 중복 제거된다.
- 쉽게 작성 가능하다.
더보기
설명을 비교 통해 하자면
Product라는 클래스가 하나있고 물건을 추가해야하는 상황이라고 가정하면 물건을 처음부터 다 만드는 것이 아닌 미완성설계도를 가져와 다른제품만들면 되기때문에 편함.
- 코드의 관리가 용이하다.
더보기
추상화된 클래스는 미완성의 클래스!
추상화된 코드는 구체화된 코드보다 유연하다.
즉, 변경에 유리하다.
GregorianCalendar cal = new GregorianCalendar(); // 구체적
Calendar cal = Calendar.getInstance(); // 추상적
- 추상클래스를 의미있는 단계별로 해놓으면 원하는곳에서 꺼내와서 사용가능하다.
'👩🏻💻 About 프로그래밍 > Java' 카테고리의 다른 글
Java 인터페이스의 장점 (0) | 2023.11.30 |
---|---|
Java 인터페이스와 다형성 (0) | 2023.11.30 |
Java 추상 클래스(abstract class), 추상 메서드(abstract method) (0) | 2023.11.30 |
Java 다형성의 장점 - 여러 종류의 객체를 배열로 다루기 (0) | 2023.11.30 |
Java 다형성의 장점 - 매개변수의 다형성 (0) | 2023.11.30 |
블로그의 정보
Hello 춘기's world
볼빵빵오춘기