[JAVA]クラスは、静的変数の親クラスのオペレーションを継承します

いくつかのファジー操作が継承されたときに、静的変数に存在する簡単なテストを行ってあります。

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で再現

おすすめ

転載: blog.csdn.net/weixin_34311757/article/details/91728336