向上转型

class Father
{
	//钱数
	float money=5000;
	static int age=90;
	//花销
	 void expand()
	{
		System.out.println("买酒");
	}
	public static void marry()
	{
		System.out.println("父亲结婚!");
	}
};
class Child extends Father//静态的方法不是覆盖
{
	float money=3000;
	static int age;
	String name;
	public  void expand()
	{
		System.out.println("买书");
		super.money-=500;
	}
	public void university()
	{
		System.out.println("上大学");
		super.money-=1500;
	}
	public static void marry()
	{
		System.out.println("儿子结婚!");
	}
	public static void setAge(int age1)
	{
      age=age1;
	}
};
class Extends
{
	public static void main(String[] args) 
	{
		Child ch=new Child();

		Father f=ch;//放生向上转型,得到的父类引用称为向上转类型 向上转型:父类引用指向子类对象
		System.out.println(f.money);//访问的是父类的属性
		f.expand();//访问的是子类被覆盖后的方法
		//f.university();//不可以访问
		f.marry();//访问父类的marry,因为static方法不能被覆盖
		//f.setAge(50);//不可以访问
		System.out.println(f.age);//访问的是父类的属性,因为覆盖的只能是方法,不能是属性
        
		 Child ch1=(Child)f;
		 System.out.println(ch1.money);
		 Father fa=new Father();
		 Child c=(Child)fa;//保证上下转机制健全,编译期间不会通过 无上转 没下转
			
	}
};

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值