본문 바로가기

2024_풀스택학원/Back-end

[Java] 상속

* 상속관계(member>gold)

 

부모클래스 (super클래스), 상위클래스

자식클래스, 하위클래스

 

 

 

 

 

b형 인스턴스안에 a형 인스턴스가 포함되어있음

 

A a 의미

a변수가 가르키는 주소는 A형에 들어있음.

 

 

 

Example.java

package main;

class A{
	public void funcA() {
		System.out.println("func A 입니다.");
		
	}
}
class B extends A{
	public void funcA() {
		System.out.println("func B 입니다.");
		
	}
}

public class Example {
	public static void main(String[] args) {
		// 다형성 : 형태가 많은 성질, 변수 하나가 여러 데이터를 담을 수 있을 때!
		// 상속관계에 놓여있는 두 클래스 사이에서 
		// 상위클래스(부모) 참조 변수는 자신을 상속받는 하위클래스 인스턴스의 주소를 저장할 수 있다.
		// 상위클래스가 다형성을 가질 수 있다!
		
		A a = new B();// upcasting ( 계보상 큰 A형에 작은 B형 넣고 싶을때)
		//A형 변수 a가 어떻게 B형 변수의 주소를 가질 수 있나? -> B형 인스턴스 안에는 A가 있기 때문에
		// a에 .을 찍으면 A형이야? B형이야? -> A형이다. '참조변수의 자료형 만큼'만 사용할 수 있다.
//		a.funcA(); // 그냥b B형은 담을 수만 있고 A형만 쓸 수 있는 거임? -> b의 기능까지 쓸 수 있는 방법이 있다.
		

		
		// B형 자료형으로 캐스팅하면 된다
//		((B)a).funcA(); //downcasting // 계보상 a형을 b형으로 자동 형 변환한 것
//		((B)a).funcB();
		
		a.funcA(); // 오버라이딩 후 ( 다운캐스팅을 안해도 b의 기능을 사용할 수 있는 경우 )
		
		
		
		
	}
}

'2024_풀스택학원 > Back-end' 카테고리의 다른 글

[Java] 학생 관리 시스템 만들기  (1) 2024.04.14
[Java] ArrayList  (0) 2024.04.09
[Java] 생성자 & 게터 세터(Constructor & Getter Setter)  (0) 2024.04.04
[Java] Method  (0) 2024.04.02
[Java] 제어문  (0) 2024.03.28