package CHAPTER06;

//부모 클래스 (User)
class User {
	// 로그인 메서드 (모든 사용자에게 공통)
	void login() {
		System.out.println("사용자가 로그인합니다.");
	}
}

//자식 클래스 (Admin) - User 클래스를 상속받음
class Admin extends User {
	// 관리 기능 추가 (Admin만 사용할 수 있는 기능)
	void manageSystem() {
		System.out.println("관리자가 시스템을 관리합니다.");
	}
}

//실행 클래스 (main 메서드 포함)
public class C6_31_UpcastingExample {
	public static void main(String[] args) {
		// 업캐스팅 (Upcasting): 부모 클래스 타입으로 자식 객체 참조
		User user = new Admin(); // 자동 형 변환 (Upcasting)

		// 부모 클래스의 메서드 호출 가능 (User의 login() 메서드 사용 가능)
		user.login();

		// user.manageSystem(); // 오류 발생! 부모 클래스 타입에서는 자식 클래스의 메서드에 접근할 수 없음
	}
}
