いくつかのファジー操作が継承されたときに、静的変数に存在する簡単なテストを行ってあります。
class Test
{
private String mName;
public Test(String name) {
setName(name);
}
public void setName(String name) {
mName = name;
}
public String getName() {
System.out.println(mName);
return mName;
}
}
class A {
protected static String TAG = "A";
protected static Test mTest;
public A() {
}
public Test getTest() {
return mTest;
}
}
class B extends A
{
protected static String TAG = "B";
public B() {
mTest = new Test(TAG);
}
}
class C extends A
{
protected static String TAG = "C";
public C() {
mTest = new Test(TAG);
}
}
public class Demo
{
public static void main(String[] args) {
B b = new B();
C c = new C();
b.getTest().getName(); // print C
c.getTest().getName(); // print C
}
}
JAVAで静的変数が存在する場合、スーパークラス、サブクラス、または静的変数のアドレスで動作を継承し、したがって操作がカバーに互いをサブクラス化することです。
子クラスは親クラスのメソッドをオーバーライドし、静的変数は、排他的サブカテゴリーである場合、および他のサブクラスの動作はお互いをカバーしています。
ます。https://my.oschina.net/zhouz/blog/213133で再現