java之继承中的静态变量
package Test; /**
* Created by wangbin10 on 2018/7/9.
* 我们知道静态变量属于类级别变量,对应每个类只有一份,类的所有实例共有一份,而成员变量则分别属于每个对象;
* 那么在类的继承中,父类的静态变量和成员变量,子类都会继承,继承的原则是什么?通过下面的测试,我们的结论是:
* 1.不仅类的对象共享类的静态变量,父类的所有子类对象也都共享父类的静态变量,有且仅有一份,对其进行修改,会影响到所有类及对象;
* 2.子类复制父类的成员变量,每个子类持有一份,互不影响。
*/
public class Parent {
public static String STATIC_VAR = "parent";
public String MEMBER_VAR = "member"; public static void main(String[] args) {
Child1 c1 = new Child1();
Child2 c2 = new Child2();
c1.setVar("child1");
System.err.println(c1.getVar());
System.err.println(c2.getVar());//输出:child1,说明子类共享父类的静态变量 c1.setMember("mem change");
System.err.println(c1.getMember());
System.err.println(c2.getMember());//输出:member,说明子类分别复制并持有一份父类的成员变量,互不影响
}
} class Child1 extends Parent {
void setVar(String var) {
STATIC_VAR = var;
} String getVar() {
return STATIC_VAR;
} void setMember(String mem) {
MEMBER_VAR = mem;
} String getMember() {
return MEMBER_VAR;
}
} class Child2 extends Parent {
String getVar() {
return STATIC_VAR;
} String getMember() {
return MEMBER_VAR;
}
}
java之继承中的静态变量的更多相关文章
- 【JAVA】类继承对父类静态变量的操作
对静态变量的操作存在继承时还是有一些模糊,做了个简单的测试: class Test { private String mName; public Test(String name) { setName ...
- Java对象访问 类的静态变量
Java类的静态变量用对象和类名都能访问,一般用类名,但如果用对象来访问静态变量呢,有何种效果? 测试一下: package JavaTest; public class test{ public s ...
- 实例甜点 Unreal Engine 4迷你教程(5)之函数中的静态变量
本小节的教程无前置教程,可直接学习,篇幅很短. 本教程浓缩起来就是一句话:函数中的静态变量在调试过程中保留值.所以需要谨慎对待. 什么意思?请先不要一步一步对着做,而整体地看一遍下面的过程: 第一步: ...
- 在java.ext.dirs中使用环境变量导致crontab执行不成功的问题及解决
在java.ext.dirs中使用环境变量导致crontab执行不成功的问题及解决 Table of Contents 1. java.ext.dirs的使用和环境变量 2. 问题:在crontab中 ...
- matlab中的静态变量与全局变量
matlab中的静态变量和全局变量 1.静态变量 在matlab中,和其他语言一样,函数中的变量一把都是局部变量,也就是说,在函数调用完毕后,变量就会被释放.但是有些时候回希望上次改变的变量在下一次调 ...
- java中的静态变量---static
用static修饰符修饰的数据成员,并不是属于那个对象的,而是属于类.静态数据成员在定义的时候已经分配了内存,而此时对象还没有建立好. 当然它也是被保存到类的方法中的,而不是对象内存中,大家都是可以访 ...
- java中的静态变量
大家都知道,我们可以基于一个类创建多个该类的对象,每个对象都拥有自己的成员,互相独立.然而在某些时候,我们更希望该类所有的对象共享同一个成员.此时就是 static 大显身手的时候了!! Java 中 ...
- java中的静态变量、静态方法与静态代码块详解与初始化顺序
我们知道类的生命周期分为装载.连接.初始化.使用和卸载的五个过程.其中静态代码在类的初始化阶段被初始化. 而非静态代码则在类的使用阶段(也就是实例化一个类的时候)才会被初始化. 静态变量 可以将静 ...
- Java中的静态变量、静态方法、静态代码块
转载自http://www.cnblogs.com/panjun-Donet/archive/2010/08/10/1796209.html (一)静态方法(1)在Java里,可以定义一个不需要创建对 ...
随机推荐
- template.js小小说明
教程 template.js 一款 JavaScript 模板引擎,简单,好用.提供一套模板语法,用户可以写一个模板区块,每次根据传入的数据,生成对应数据产生的HTML片段,渲染不同的效果. 简介 主 ...
- 【从翻译mos文章】采用高速全扫描索引(index ffs) 为了避免全表扫描
采用高速全扫描索引(index ffs) 为了避免全表扫描 参考原始: Index Fast Full Scan Usage To Avoid Full Table Scans (Doc ID 701 ...
- Android之消息推送实现
在开发Android和iPhone应用程序时,我们往往需要从服务器不定的向手机客户端即时推送各种通知消息,iPhone上已经有了比较简单的和完美的推送通知解决方案,可是Android平台上实现起来却相 ...
- Retrieving data from a server
A system includes a server and a controller embedded in a device. Both the server and the embedded c ...
- 使用哈希加盐法来为密码加密(补充JAVA的实现)
使用哈希加盐法来为密码加密 转自:http://www.cnblogs.com/jfzhu/p/4023439.html 转载请注明出处 (一)为什么要用哈希函数来加密密码 如果你需要保存密码(比 ...
- OpenGL中GLSL渲染茶壶光照完整程序
顶点着色器VertexShader.txt: uniform vec3 lightposition;//光源位置 uniform vec3 eyeposition;//相机位置 uniform vec ...
- stream 文件操作
简单的帮助类: private static byte[] StreamToBytes(Stream fs) { byte[] bArr = new byte[fs.Length]; fs.Read( ...
- iOS_21团购_顶部菜单和弹出菜单联动
最后效果图: 各控件关系图1: watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcHJlX2VtaW5lbnQ=/font/5a6L5L2T/fontsize ...
- 各种Message中文解释(一部分)
函数功能:该函数将指定的消息发送到一个或多个窗口.此函数为指定的窗口调用窗口程序,直到窗口程序处理完消息再返回.该函数是应用程序和应用程序之间进行消息传递的主要手段之一. 函数原型:LRESUL ...
- Web前端开发人员实用Chrome插件收集
越来越多的前端开发人员喜欢在Chrome里开发调试代码,Chrome有许多优秀的插件可以帮助前端开发人员极大的提高工作效率.尤其Chrome本身是可以登录的,登录后你所有的插件都会自动同步到每一个登录 ...