1.
class Sub extends Super{
new putlic int a=20; //这样隐藏基类的a变量
public void ma(){
System.out.println("Sub Ma");
}
public static void mb(){
System.out.println("Sub Mb");
}
}
2.应覆盖mb()
如果是Super s=new Sub();的情况
public override void mb(){
System.out.println("Sub Mb");
}
输出Sub Mb
如果写成
new public void mb(){
System.out.println("Sub Mb");
}
仍会输出Super Mb
注意,父类方法不能加static,否则将无法覆盖.
只能输出Super Mb
但是如果Sub s=new Sub();的情况
s.mb();
则输出的是Sub Mb
不知道你是否可以明白... 继承就是这么晕...
-----------------------------------------------------------
属性遮盖似乎有违语法规则的,多态中不允许进行这样的操作吧...
我在网上是没找到...大都是覆盖父类方法的.
this.a=20;这样看看可否改变父类的属性.
我是学C#的,在C#中如果是这样的程序则显示20,可以运行但是会报警.
应写为new public int a=20;