java:关于继承变量的值问题
1、在java中,如果子类继承父类的静态变量时,当你在子类面前修改这个静态变量的值,其父类的静态变量也会改变。
案例:
//父类
public class Animal {
//静态属性
public static int Age=1;
};
//子类
public class Cat extends Animal{
//静态方法
public static void print(){
System.out.println("Animal:"+Animal.Age+"; Cat:"+Cat.Age);
};
//普通方法
public void say(){
System.out.println("Animal:"+Animal.Age+"; Cat:"+Cat.Age);
};
};
测试:
public class numberMain {
public static void main(String[] args) {
Cat c=new Cat();
c.say();
Cat.print();
System.out.println("改值后:");
Cat.Age=5;
c.say();
c.print();
}
};
2、问题:如果子类继承父类的变量时?当修改这个子类变量时父类的值会不会也改变?
案例:
//父类
public class Animal {
public int height=1;
};
//子类
public class Cat extends Animal{
//public int height=1;
public void setHeight(int _h){
this.height=_h;
};
public int getHeight(){
return height;
}
public void say(){
//子类的值
Animal a=new Animal();
System.out.println("Animal类:"+a.height+"; Cat类:"+this.height);
};
};
测试:
public class numberMain {
public static void main(String[] args) {
Cat c=new Cat();
System.out.println("没修改前:");
c.say();
System.out.println("没修改后:");
c.setHeight(5);
c.say();
}
};
结果:
没修改前:
Animal类:1; Cat类:1
没修改后
Animal类:1; Cat类:5
由此可见:当你改变父类的普通变量时,子类的变量不会改变,但是如果是静态变量,一旦修改父类静态变量值,子类静态变量的值也会变。
java:关于继承变量的值问题的更多相关文章
- Java中初始变量默认值
Java语言中有8种基本数据类型,基本情况汇总如下: 序号 数据类型 大小/位 封装类 默认值 可表示数据范围 1 byte(位) 8 Byte 0 -128~127 2 short(短整数) 16 ...
- 调试Java源代码时变量的值无法追踪怎么办?
问题:调试Java源代码时,只能看到源代码,却无法查看源代码中的变量的即时值 原因:jre为了节省空间,在打包时去掉了class文件中的调试信息. 思路:使用jdk里的src.zip源码重新编译生成完 ...
- JAVA中方法和变量在继承中的覆盖和隐藏
出处:http://renyanwei.iteye.com/blog/258304 我们知道,在JAVA中,子类可以继承父类,如果子类声明的方法与父类有重名的情况怎么办,大伙儿都知道要是重写,但是实际 ...
- JAVA中方法和变量在继承中的覆盖和隐藏(一)
我们知道,在JAVA中,子类可以继承父类,如果子类声明的方法与父类有重名的情况怎么办,大伙儿都知道要是重写,但是实际上这又分为两种情况,就是方法和变量在继承时的覆盖和隐藏问题,这些概念性的东西看似无聊 ...
- Java基础 成员变量的继承与覆盖
通过继承可以得到父类的成员变量,子类的成员变量包括从父类继承的成员变量(包括从祖先类中继承的成员变量)以及子类中重新定义的成员变量.本次介绍内容包括:可以继承哪些成员?如果子类和父类出现了相同的成员变 ...
- 谈谈java中静态变量与静态方法在有继承关系的两个类中调用
谈谈java中静态变量与静态方法在有继承关系的两个类中调用 学习的中如果遇到不明白或者不清楚的的时候,就是自己做些测试,自己去试试,这次我就做一个关于静态变量和静态方法在有继承关系的两个类中的问题测试 ...
- 谈谈java中成员变量与成员方法继承的问题
谈谈java中成员变量与成员方法继承的问题 关于成员变量和成员方法的的继承问题,我也可以做一个小测试,来看看结果. 首先我们先创建一个父类:
- Java类成员变量的默认值
1.布尔型(boolean)变量默认值为false,byte.short.int.long为0,字符型为'\u0000'(空字符),浮点型(float double)为0.0,引用类型(String) ...
- JAVA交换两个变量的值-(不使用第三变量)
以下方法的根本原理就是: 借助第三个变量 c = a; a = b; b = c; 运算符-不借助第三变量: a = a+b; b = a-b; a = a-b; 为运算符-不借助第三个变量: (此种 ...
随机推荐
- DGV换行操作
DGV.RowsDefaultCellStyle.WrapMode = DataGridViewTriState.True;
- js 和 jq 控制 checkbox
判断checkbox是否选中 1. $("#id").attr("checked") 在jquery 1.6前(含1.6),返回值是boolean类型的tru ...
- ARCGIS Server 发布服务时出现的问题解决
target='CFH.ConfigurationFactoryHost' machine='IBM3850X5' thread='24072' elapsed='0.31200'>Ser ...
- 用于模式匹配的String方法
String支持四种使用正则表达式的方法. 1.search()返回第一个与之匹配的子串的起始位置,找不到返回-1.search()参数是一个正则表达式,如果参数不是正则表达式,则会先通过RegExp ...
- perl中常见的语法规则和函数
数值比较操作符 字符串 相等 == eq 不等 != ...
- bash:fdisk:command not found
bash:fdisk:command not found [lansir@Red-Hat ~]$ fdisk -l-bash: fdisk: command not found 原因是fdisk不在P ...
- linux命令(6):rmdir 命令
rmdir命令 rmdir是常用的命令,该命令的功能是删除空目录,一个目录被删除之前必须是空的.(注意,rm - r dir命令可代替rmdir,但是有很大危险性.)删除某目录时也必须具有对父目录的写 ...
- Linux基础-常用命令
常用的压缩命令 一.tar 1.压缩:tar zcvf [压缩包名].tar.gz [待压缩的文件名 ... ] 2.解压缩:tar zxvf [压缩包名].tar.gz -C [指定的解压目录] 3 ...
- [OC笔记]我的第一个OC程序
这是我第一个OC程序,详情都写在了注释里面,讲的是Student和Book这两个类的创建和使用.(是不是觉得student这个类在各种语言入门代码里经常出现呢?真实有爱) 看完这些,你会发现,咱们其实 ...
- 2013 acm 长沙网络赛 G题 素数+枚举 Goldbach
题目 http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3856 先预处理求出两个素数的和与积,然后枚举n-prime和n/pr ...