UpCasting 데이터타입을 부모 클래스로 선언
1. Casting(캐스팅) 이란?
캐스팅은 타입을 변환하는 것으로
형변환이라고도 합니다.
자바의 상속 관계에 있는
부모 클래스와 자식 클래스간에
형 변환이 가능합니다.
2. UpCasting 이란?
업캐스팅은 데이터 타입을
부모 클래스로 선언하는 것입니다.
업캐스팅은 부모 클래스와
자식 클래스가 상속이 되어있는
상속 관계에서만 가능합니다.
// 부모클래스
// UpCastingParent.java
public class UpCastingParent {
int x;
int y;
public UpCastingParent() {
x = 10;
y = 20;
}
public void print() {
System.out.println(x + ", " + y);
}
public int add() {
System.out.println("Parent의 add 함수 호출");
return x + y;
}
}
// 자식클래스
// UpCastingChild.java
public class UpCastingChild extends UpCastingParent {
// int x;
// int y;
// UpCastingParent의 함수들도 상속 받았다.
int z;
public UpCastingChild() {
x = 100;
y = 200;
z = 300;
}
@Override
public void print() {
System.out.println(x + ", " + y + ", " + z);
}
@Override
public int add() {
System.out.println("Child의 add() 함수 호출");
return x + y + z;
}
public int sub() {
System.out.println("Child의 sub() 함수 호출");
return x - y - z;
}
public int getZ() {
return z;
}
public void setZ(int z) {
this.z = z;
}
}
위에 코드에서 주목할점!!
public class UpCastingChild extends UpCastingParent
부모 클래스를 상속 받을경우
extends 를 사용합니다.
@ Override 는 메소드 오버라이딩
(Method Overriding)을 의미합니다.
// 실행 파일
// UpCastingMain.java
public class UpCastingMain {
public static void main(String[] args) {
UpCastingParent ucp = new UpCastingChild();
// 변수는 부모클래스이며, 부모클래스에 add 함수 이름이 있다.
// 함수가 실행되는 객체가 자식 클래스 이고
// 자식 클래스가 add를 오버라이딩 했으므로
// 자식 클래스의 함수가 호출된다.
result = ucp.add();
System.out.println(result);
// 변수는 부모 클래스 이므로, 부모 클래스에 있는 함수 이름만 사용이 가능하다
// sub() 는 부모에는 없고 자식에게만 있으니깐 실행 못한다
// result = ucp.sub();
}
}
힐링아무의 코딩일기 힐코딩!!
'Back End > JAVA' 카테고리의 다른 글
JAVA/ Down Casting 상속받는 자식 클래스로 캐스팅 (0) | 2022.07.05 |
---|
댓글