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
- After effects
- if문
- 상속
- static
- 메서드
- Interface
- while문
- 변수
- Singleton
- super
- 멤버변수
- Override
- expand
- private
- Java
- 배열
- symbol
- 클래스
- Overload
- do while문
- Photoshop
- 생성자
- 형변환
- length
- 반복문
- 파라미터
- switch문
- 조건문
- for문
- illustrator
Archives
- Today
- Total
Ms'Note
Boxing-1 본문
다시 원래의 기능을 복구하기
- 확장된 추가 기능을 다시 사용하기 위해서는 본래의 형태로 명시적 형 변환이 필요하다.
public class Main01 {
public static void main(String[] args) {
AirForce af = new AirForce("공군");
Navy nv = new Navy("해군");
Army am = new Army("육군");
// 각각의 객체는 자신들의 고유 기능을 사용할 수 있음
af.bombing();
nv.nuclear();
am.tank();
System.out.println("----------------");
// 상위 객체 형태로 암묵적 형 변환
// - 상위 클래스의 객체로 암묵적 형 변환이 이루어지면 Override된 기능만 사용가능하다.
// - 추가적으로 확장된 기능들은 사용할 수 없도록 잠김 상태가 된다.
// 모든 객체는 자신의 상위 형태로 암묵적 형 변환이 가능하다.
Unit temp1 = af;
Unit temp2 = nv;
Unit temp3 = am;
// 형 변환이 되더라도 상속받거나 재정의한 Override
// 자신들의 기본 특성들은 그대로 유지한다.
temp1.attack();
temp2.attack();
temp3.attack();
System.out.println("----------------");
// 다시 원래의 기능을 복구하기
// - 확장된 추가 기능을 다시 사용하기 위해서는 본래의 형태로 명시적 형 변환이 필요하다
// 상위 클래스 형태로 형 변환이 되면, 자신들의 독립 기능은 사용하지 못한다.
// temp1.bombing();
// temp2.nuclear();
// temp3.tank();
// 다시 원래의 기능을 되돌리기 위해서는 하위 클래스 형태로 명시적 형 변환이 필요하다
AirForce re1 = (AirForce)temp1;
Navy re2 = (Navy)temp2;
Army re3 = (Army)temp3;
re1.bombing();
re2.nuclear();
re3.tank();
}
}
출력 결과
'IT > └▶Example Coding.JAVA' 카테고리의 다른 글
Abstract (0) | 2020.08.24 |
---|---|
Boxing-2 (0) | 2020.08.23 |
Overload-2 (0) | 2020.08.23 |
Overload-1 (0) | 2020.08.22 |
Override (0) | 2020.08.22 |
Comments