티스토리 뷰
반응형
package prj190709_1;
class Car{
String color;
int door;
void drive() {
System.out.println("dirve");
}
void stop() {
System.out.println("stop");
}
}
class FireEngine extends Car{
void water() {
System.out.println("FireEngine water");
}
}
class Ambulance extends Car{
void siren() {
System.out.println("siren");
}
}
public class PolymorphTest {
public static void main(String[] args) {
Car car = null;
FireEngine fe = new FireEngine();
FireEngine fe2 = null;
Ambulance am = new Ambulance();
method(am);//method로 넘겨서 확인
// Object obj = (Object)am; (자동 업캐스팅되어서 변환되어 들어감.
// fe.water();
// car = fe;//car = (Car)fe; 생략(업캐스팅)
//Car 조상클래스가 FireEngine인 차일드 클래스 주소값을 담을 수 있다.
//car.water(); 는 오류가 나는데, 업캐스팅 했어도 자식 클래스의 메소드, 변수 사용 불가.
//참조변수의 형변환은 참조변수의 타입만을 변경할 뿐 변수의 값이나 인스턴스에는 아무런 영향을 주지 않는다
// fe2 = (FireEngine)car;//(다운캐스팅)
// fe2.water();
// if(fe instanceof FireEngine) System.out.println("FireEngine instance");
// if(fe instanceof Car) System.out.println("car");
// if(fe instanceof Object) System.out.println("object");
}
//////////////////////만약 부모타입이 자식타입으로 참조변수, 참조할수 없다면 Object obj가 아니라
////Car car, FireEngine, Ambulance 자식 개체마다 오버로딩하여
//// 메소드가 늘어날것.
//부모타입은 자손거 다 받아야함.
static void method(Object obj) {//fe가 들어오는데 fe는 fe>car>object를 상속 받고 있어서 obj 이기도 하다.
if(obj instanceof Car) { //obj는 car를 상속받았으므로 조건 달성
Car c = (Car)obj; // obj(fe)를 다시 car로 다운캐스팅
c.drive(); //c.drive실행
}
if (obj instanceof FireEngine) {//obj는 fe 이기 때문에 조건 달성
FireEngine fe = (FireEngine )obj;
fe.water();
}
if(obj instanceof Ambulance) {
Ambulance am = (Ambulance) obj;
am.siren();
}
}
}
반응형
'JAVA' 카테고리의 다른 글
190711 Interface (0) | 2019.07.11 |
---|---|
190710 다형성 상속 예제 (0) | 2019.07.10 |
190708 class - 생성자 - setter,getter 연습 (0) | 2019.07.08 |
190703 Class이용한 성적관리 프로그램 (배열, 콘솔입력) (0) | 2019.07.03 |
190703 배열 for 문 정렬 (1) | 2019.07.03 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 정규식
- js
- ''찾기
- PageNotFound - No mapping for GET
- 정규식 특수문자
- Spring
- JSON날짜
- 정규식 숫자만
- Regex
- 정규식 한글만
- no getter for property named
- IntelliJ #gradle #tomcat #spring #springmvc
- POI EXCEL
- JSON파싱
- spring 엑셀
- 인텔리제이
- mybatis
- 이메일 정규식
- select제어
- 공백찾기
- 계좌번호정규식
- selectbox
- jQuery
- JSON
- poi
- SpringXmlModelInspection
- spring error #
- poi 엑셀
- 엑셀다운로드
- Failed to load resource: the server responded with a status of 404 (Not Found)
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함