成员覆盖和方法覆盖应该是同样的道理,可是如下代码
public class Demo
{
public static void main(String[] args)
{
B b = new B();
System.out.println(b.a);//输出b对象中a的值
b.sop();//调用b对象的sop方法
System.out.println("-------------------------------------------");
System.out.println(((A)b).a);//将b对象转换为A类型,输出a值
((A)b).sop();//将b对象转换为A类型,调用sop方法
}
}
class A{
int a=10;
public void sop(){
System.out.println("you are print A class");
}
}
class B extends A{
int a=20;//覆盖a成员
public void sop(){//覆盖sop方法
System.out.println("you are print B class");
}
}
打印结果为
20
you are print B class
-------------------------------------------
10
you are print B class