HOWTO · Java
자바에서 다운캐스팅
이 자습서에서는 Java의 다운캐스팅에 대해 설명합니다.
이 페이지의 내용
Java로 작업하는 경우 TypeCasting, UpCasting 또는 DownCasting으로 작업할 수 있습니다. 사용 목적은 한 유형에서 다른 유형으로 변환하는 것입니다.
이것은 변수 또는 객체와 함께 할 수 있습니다. 개체의 경우 두 가지 종류의 변환을 사용할 수 있습니다.
첫 번째는 부모에서 자식으로, 두 번째는 자식에서 부모로입니다.
여기에서 Child에서 Parent로의 변환을 UpCasting이라고 하며 Parent에서 Child로의 변환을 DownCasting이라고 합니다. 암시적 또는 명시적으로 UpCasting을 수행할 수 있지만 DownCasting은 명시적으로만 수행할 수 있습니다.
이 기사에서는 DownCasting에 대해 자세히 살펴보겠습니다. 또한 주제를 쉽게 이해할 수 있도록 필요한 예와 설명을 사용하여 주제를 설명합니다.
자바에서 다운캐스팅
이제 DownCasting에 대한 예를 살펴보겠습니다.
class ParentClass {
String name;
void showMessage() {
System.out.print("Parent class method is called");
}
}
class ChildClass extends ParentClass {
int age;
@Override
void showMessage() {
System.out.print("The child class method is called");
}
}
class Downcasting {
public static void main(String[] args) {
ParentClass Parent = new ChildClass();
Parent.name = "Alex";
ChildClass Child = (ChildClass) Parent;
Child.age = 21;
System.out.print("Name:" + Child.name + " ");
System.out.println("Age:" + Child.age);
Child.showMessage();
}
}
코드를 부분별로 설명하겠습니다. 먼저 ParentClass라는 부모 클래스를 만든 다음 ChildClass라는 자식 클래스를 만들고 ParentClass로 확장합니다.
ChildClass에서 @Override로 재정의를 수행했습니다.
그런 다음 제어 클래스인 Downcasting이라는 또 다른 클래스를 만들었습니다. 클래스에서 ParentClass에서 개체를 만들었습니다.
그런 다음 ChildClass Child = (ChildClass)Parent; 줄을 사용하여 개체를 다운캐스팅합니다.
마지막으로 모든 데이터를 인쇄합니다. 이제 위의 Java 프로그램을 실행한 후.
아래와 같은 출력을 얻을 수 있습니다.
Name:Alex Age:21
The child class method is called
암시적으로 다운캐스트를 시도할 때 컴파일러 오류 발생
위의 예에서는 다운캐스팅을 명시적으로 수행했습니다. 암시적으로 다운캐스팅을 시도하면 오류가 발생할 수 있습니다.
암시적으로 다운캐스팅을 시도한 다음 예를 확인하십시오.
class ParentClass {
String name;
void showMessage() {
System.out.print("Parent class method is called");
}
}
class ChildClass extends ParentClass {
int age;
@Override
void showMessage() {
System.out.print("Child class method is called");
}
}
class Downcasting {
public static void main(String[] args) {
ParentClass Parent = new ChildClass();
Parent.name = "Alex";
ChildClass Child = new ParentClass();
Child.age = 21;
System.out.print("Name:" + Child.name + " ");
System.out.println("Age:" + Child.age);
Child.showMessage();
}
}
위의 프로그램을 컴파일하려고 하면 아래와 같은 오류가 발생합니다.
/tmp/AMCRVnDhlV/Downcasting.java:22: error: incompatible types: ParentClass cannot be converted to ChildClass
ChildClass Child = new ParentClass();
^
1 error
DownCasting은 외부에서 수행해야 합니다. DownCasting을 사용하면 자식 개체가 부모 개체의 속성을 가져올 수 있습니다.
여기에서 공유되는 코드 예제는 Java로 되어 있으며 시스템에 Java가 포함되어 있지 않은 경우 환경에 Java를 설치해야 합니다.