day16_PolymorphismEx07

육희영·2021년 10월 28일
0
package com.java1.day16;

/* 다형적 표현에서 맴버에 대한 접근 규정들
 * 부모 클래스가 가지고 있는 모든 맴버에 접근할수 있다.
 * 단, 자식 클래스에서 메서드 오버라이딩을 했다면 오버라이딩이 된 자식의 맴버에 접근이 된다.
 * 맴버 필드의 경우 부모 클래스의 맴버 필드에만 접근 할수 있다. (필드? 속성 이라는 뜻이며, 변수들을 의미)
 * 자식 클래스 맴버 필드는 오버라이딩이 된 자식 클래스의 메서드에 의해서만 접근할수 있다.
 */

public class PolymorphismEx07 {
	public static void main(String[] args) {
		Parent4 p = new Child4();	// 다형적 표현
		System.out.println("x = " + p.x);	// 자식을 부모에 넣으면 부모클래스 안에 있는것들만 접근이 가능하다.
	//	System.out.println("y = " + p.y);	// 컴파일 에러 발생!
	//자손 타입 -> 조상타입 : 형변환 생략가능
	//자손타입  <- 조상타입 : 형변환 생략 불가	
		System.out.println("x = " + ((Child4)p).y); //명시적 형변환을 해주면 된다.
	}
}

class Parent4 {
	int x = 100;
//	int y = 200;
}

class Child4 extends Parent4 {
	int x = 300;
	int y = 400;
}

출력결과

x = 100
x = 400

0개의 댓글

관련 채용 정보