小编典典
你可以隐藏字段,但不能覆盖它。
隐藏意味着字段的值取决于所访问的类。子类中的字段将“隐藏”超类中的字段,但是两者都存在。
隐藏字段是非常糟糕的做法,但是可以:
public class HideField {
public static class A
{
String name = "a";
public void doIt1() { System.out.println( name ); };
public void doIt2() { System.out.println( name ); };
}
public static class B extends A
{
String name = "b";
public void doIt2() { System.out.println( name ); };
}
public static void main(String[] args)
{
A a = new A();
B b = new B();
a.doIt1(); // print a
b.doIt1(); // print a
a.doIt2(); // print a
b.doIt2(); // print b
}
}
根据是否重写该方法,访问A或中的字段B。
绝对不要那样做!那永远不是解决问题的方法,它会产生与继承相关的非常细微的错误。
2020-03-22