본문 바로가기
Back End/JAVA

Java/ UpCasting 데이터타입을 부모 클래스로 선언

by healingmau 2022. 7. 5.


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

댓글