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;//保证上下转机制健全,编译期间不会通过 无上转 没下转
}
};