728x90
반응형
package chap7;
/*
* 부모클래스의 멤버와 자손클래스의 멤버가 같은 멤버인 경우
* 멤버변수 : 참조변수의 자료형을 따른다.
* 멤버메서드 : 객체에 최종 오버라이딩된 메서드가 호출됨.
*
* 부모클래스의 멤버와 자손클래스의 멤버가 다른 경우
* 부모클래스의 참조변수로 참조시 부모클래스의 멤버만 접근 가능
* 자손클래스의 참조번수로 참조시 부모클래스의 멤버도 접근 가능
*/
class Parent3 {
int x = 10;
void method() {
System.out.println("Parent3 클래스의 method");
}
}
class Child3 extends Parent3 {
int x = 20;
void method() {
System.out.println("Child3 클래스의 method");
}
}
public class BindingEx1 {
public static void main(String[] args) {
Parent3 p = new Child3();
Child3 c = (Child3)p; //자손참조변수 <= 부모참조변수 : 형변환 연산자 필수
System.out.println("p.x=" + p.x); //10
System.out.println("c.x=" + c.x); //20
p.method(); //Child3.method 호출
c.method(); //Child3.method 호출
//부모타입의 객체를 자손타입의 참조변수로 참조 => 예외 발생. ClassCastException
Child3 c2 = (Child3)new Parent3(); //예외 발생. ClassCastException
System.out.println(c2.x); //
}
}
728x90
반응형
'study > Java' 카테고리의 다른 글
[Java] 22. 상속 Exam2 (각 클래스를 생성하고 출력하기) (0) | 2022.03.21 |
---|---|
[Java] 22. instanceof 연산자 (0) | 2022.03.21 |
[Java] 22. 자바용어정리 (0) | 2022.03.21 |
[Java] 22. Test2 풀이 ( 사과, 복숭아는 가격과 당도를 입력하여 객체를 생성하고, 콜라, 사이다는 가격, 용량을 비스킷, 쿠키는 가격,무게를 입력하여 객체를 생성하기) (0) | 2022.03.21 |
[Java] 22. Test1 풀이 (모든 클래스에 getPay() 메서드를 구현하기 (0) | 2022.03.21 |