
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 | 
|---|
 
										
									
댓글