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

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




  • 相关阅读:
    Python
    版本控制
    后台
    前端
    提升权限 关闭系统
    SC命令(windows服务开启/禁用)
    获取当前电脑全部网络连接名字
    x64 win64编译环境下ADO链接Access数据库的问题解决
    Netsh命令-网络禁用开启
    windows主机防护
  • 原文地址:https://www.cnblogs.com/zhouzme/p/5758440.html
Copyright © 2011-2022 走看看