* 상속관계(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 |