zoukankan      html  css  js  c++  java
  • 【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 中如果继承的父类中存在静态变量,多个子类操作的还是同一个静态变量地址,因此子类的操作是要相互覆盖的。

    如果子类重写了父类的方法和静态变量则专属子类了,其它子类的操作也就不会相互覆盖了。




  • 相关阅读:
    gj10 python socket编程
    自定义Git
    使用GitHub
    标签管理之操作标签
    标签管理之创建标签
    标签管理
    git分支管理之多人协作
    git分支管理之Feature分支
    git分支管理之Bug分支
    git分支管理之分支管理策略
  • 原文地址:https://www.cnblogs.com/zhouzme/p/5758440.html
Copyright © 2011-2022 走看看