Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- do while문
- 반복문
- illustrator
- 생성자
- private
- 변수
- 파라미터
- 멤버변수
- Interface
- 상속
- Photoshop
- 형변환
- 메서드
- static
- symbol
- Java
- if문
- After effects
- 클래스
- while문
- 조건문
- 배열
- expand
- Override
- Overload
- for문
- length
- switch문
- super
- Singleton
Archives
- Today
- Total
Ms'Note
Abstract 본문
Unit 클래스를 추상 클래스 형태로 정의
- 이 클래스를 통한 객체는 생성할 수 없고, 반드시 상속의 형태로만 사용되어야 한다.
추상화 되었기 때문에 추상 메서드를 포함할 수 있다.
public abstract class Unit {
private String name;
public Unit(String name) {
super();
this.name = name;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
// 자식들이 재정의할 메서드를 추상으로 명시한다.
public abstract void attack();
public abstract void move();
}
추상 메서드의 상속
- 육군을 표현하기 위한 Army 클래스를 정의하고 Unit을 상속받는다.
public class Army extends Unit {
public Army(String name) {
super(name);
}
@Override
public void attack() {
System.out.println(this.getName() + ">> 육상공격");
}
@Override
public void move() {
System.out.println(this.getName() + ">> 육상이동");
}
}
해군(Navy)클래스의 구현
- Army 클래스와 동일한 과정을 거쳐서 구현한다.
public class Navy extends Unit {
public Navy(String name) {
super(name);
}
@Override
public void attack() {
System.out.println(this.getName() + ">> 해상공격");
}
@Override
public void move() {
System.out.println(this.getName() + ">> 해상이동");
}
}
공군(AirForce)클래스의 구현
- 앞의 클래스들과 동일한 과정을 거쳐서 구현한다.
public class AirForce extends Unit {
public AirForce(String name) {
super(name);
}
@Override
public void attack() {
System.out.println(this.getName() + ">> 공중공격");
}
@Override
public void move() {
System.out.println(this.getName() + ">> 공중이동");
}
}
Main01
- 육/해/공군의 클래스의 기능을 활용한 프로그램 만들기
public class Main01 {
public static void main(String[] args) {
Army army = new Army("육군");
Navy navy = new Navy("해군");
AirForce air = new AirForce("공군");
// 다형성이란, 객체의 이름이 서로 다르더라도
// 객체의 메서드를 호출할 때 고민하지 않기 위한 기법이다.
// 추상화는 다형성을 강제하는 것으로
// 객체를 사용하는 개발자의 편의를 위한 클래스 작성 규칙이다.
army.move();
army.attack();
navy.move();
navy.attack();
air.move();
air.attack();
}
}
출력 결과
'IT > └▶Example Coding.JAVA' 카테고리의 다른 글
static-1 (0) | 2020.08.25 |
---|---|
Interface (0) | 2020.08.25 |
Boxing-2 (0) | 2020.08.23 |
Boxing-1 (0) | 2020.08.23 |
Overload-2 (0) | 2020.08.23 |
Comments