파일명 : Test1.java
package com.test;
class Parent {
void parentPrn() {
System.out.println("parentPrn()");
}
}
class Child extends Parent {
void childPrn() {
System.out.println("childPrn()");
}
}
public class Test1 {
public static void main(String[] args) {
// 기본자료형 형변환(호환가능한 자료형 : 숫자형)
double d = 3; // int -> double 자동 형변환
System.out.println(d);
int a = (int) 3.4; // double -> int 강제(명시적) 형변환
System.out.println(a); // 3
// 참조형(레퍼런스형) 형변환(호환가능관계는 상속관계)
Child c = new Child();
c.parentPrn();
c.childPrn();
Parent p;
p = c; // 부모타입(큰) = 자식타입(작은) (업캐스팅)자동형변환 -> 다형성
p.parentPrn();
// p.childPrn(); // 자식클래스의 함수를 호출할 수 없다
System.out.println("==============");
Parent p2 = new Child(); // 업캐스팅
// 부모타입(큰) = 자식타입(작은)
p2.parentPrn();
// p2.childPrn(); // 자식멤버 접근못함
Child c2;
c2 = (Child)p2; // 자식타입(작은) = 부모타입(큰)
// 형변환 연산자 사용. 강제 형변환. (다운캐스팅)
c2.parentPrn();
c2.childPrn();
} // main()의 끝
}
'IT > Java' 카테고리의 다른 글
자바 다형성, 도형 예제 (0) | 2018.07.18 |
---|---|
자바 다형성, 정적바인딩, 동적바인딩, instanceof (0) | 2018.07.18 |
자바 상속, super() 생성자 호출 (0) | 2018.07.17 |
자바 상속, 메소드 오버라이딩, 메소드 오버라이딩 제약사항, 생성자 (0) | 2018.07.17 |
자바 상속, 메소드 오버라이딩 (0) | 2018.07.17 |