Type
자바에서의 타입 변환
1. 자료형 변환 : 변수 & 자료형에서의 자동 형 변환, 강제 형 변환
2. 클래스의 타입 변환 : 자동, 강제 형 변환
- 자료형 변환보다 가능한 범위가 좁음
- 서로 상속관계에 있는 클래스 사이에서만 변환 가능
클래스의 자동 타입 변환(Upcasting, 업캐스팅)
- 자식 클래스의 객체를 부모 클래스 타입으로 변환하는 것
- 직접 명시 X, 자동으로 타입 변환이 일어남
- 1. 자식 객체를 생성하면서 바로 부모 타입으로 변환
- 부모클래스 객체변수 = new 자식클래스();
- 자동 형변환의 경우, 해당 객체는 보존되면서 사용은 부모 객체처럼 사용
- 두클래스 간에 공통된 특성이 아닌 경우 자식만의 기능은 X
- 2. 이미 만들어진 자식 객체를 부모 타입으로 변환할 때
- 부모클래스 객체변수 = 자식객체변수;
더보기
class Parent {
void displayInfo() {
System.out.println("부모 클래스 입니다.");
}
}
class Child extends Parent {
// 메서드 재정의: 오버라이딩(상속 관계에서만 가능)
@Override
void displayInfo() {
System.out.println("자식 클래스 입니다.");
}
void ownMethod() {
System.out.println("자식만이 가지는 메서드 입니다.");
}
}
public class A_Class_Type {
public static void main(String[] args) {
// 1. 자식 객체를 생성하면서 바로 부모 타입으로 변환
Parent childObject = new Child();
childObject.displayInfo();
// childObject.ownMethod(); - Error
// 2. 이미 만들어진 자식 객체를 부모 타입으로 변환할 때
Child c1 = new Child();
Parent p1 = c1;
}
클래스의 강제 타입 변환(Downcasting, 다운캐스팅)
- 부모 클래스 타입으로 변환된 객체를 다시 자식 클래스 타입으로 변환하는 것을 의미
- 자식 클래스에서 정의된 멤버에 접근가능
더보기
Parent p2 = new Child(); // 자동 형 변환
// p2.ownMethid(); - Error
// 자식 타입 변수 = (자식타입)부모객체;
Child c2 = (Child)p2;
c2.ownMethod(); //
'Java' 카테고리의 다른 글
[Java] Abstract (0) | 2024.09.09 |
---|---|
[Java] Polymorphism (0) | 2024.09.09 |
[Java] final (0) | 2024.09.09 |
[Java] Encapsulation (0) | 2024.09.09 |
[Java] Modifier (0) | 2024.09.09 |