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

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




目录
相关文章
|
2月前
|
Java 编译器 API
Java 密封类:精细化控制继承关系
Java 密封类:精细化控制继承关系
258 83
|
7天前
|
安全 IDE Java
Java记录类型(Record):简化数据载体类
Java记录类型(Record):简化数据载体类
54 0
|
2月前
|
Java API
深入解析Java API中Object类的功能
了解和合理运用 Object类的这些方法,对于编写可靠和高效的Java应用程序至关重要。它们构成了Java对象行为的基础,影响着对象的创建、识别、表达和并发控制。
48 0
|
2月前
|
安全 Java
JAVA:Collections类的shuffle()方法
`Collections.shuffle()` 是 Java 中用于随机打乱列表顺序的工具方法,适用于洗牌、抽奖等场景。该方法直接修改原列表,支持自定义随机数生成器以实现可重现的打乱顺序。使用时需注意其原地修改特性及非线程安全性。
67 0
|
2月前
|
存储 Java 编译器
深入理解Java虚拟机--类文件结构
本内容介绍了Java虚拟机与Class文件的关系及其内部结构。Class文件是一种与语言无关的二进制格式,包含JVM指令集、符号表等信息。无论使用何种语言,只要能生成符合规范的Class文件,即可在JVM上运行。文章详细解析了Class文件的组成,包括魔数、版本号、常量池、访问标志、类索引、字段表、方法表和属性表等,并说明其在Java编译与运行过程中的作用。
|
2月前
|
SQL Java 数据库连接
Java 期末考试救急必备涵盖绝大多数核心考点及五大类经典代码助你过关
本文为Java期末考试复习指南,涵盖基础语法、面向对象编程、异常处理、文件操作、数据库连接五大核心考点,提供详细解析与实用代码示例,助力快速掌握重点,高效备考,轻松应对考试。
59 0
|
2月前
|
安全 算法 Java
Java 多线程:线程安全与同步控制的深度解析
本文介绍了 Java 多线程开发的关键技术,涵盖线程的创建与启动、线程安全问题及其解决方案,包括 synchronized 关键字、原子类和线程间通信机制。通过示例代码讲解了多线程编程中的常见问题与优化方法,帮助开发者提升程序性能与稳定性。
106 0

热门文章

最新文章