如果在父类中,你声明了一个静态变量。

然后你有两个子类继承了这个父类。我们想看看这两个子类调用继承的父类的类变量a是不是同一个值。

这时候注意,我们在子类的时候不能重写static int a = a+2; 因为你一旦 这样重写了,那么这个子类的a肯定就不是父类的那个a了,那么这时候你想得写成a=a+2;但是这时候就有个问题了。你不能在子类中直接写a=a+2,只能在子类的初始化块中写a=a+2或者在方法中使用;不然会出现:

我认为这是因为:使用继承到的父类的变量只能通过 写在{}使用,或者在方法中使用。

所以我们在adda方法中使用,如下图:

通过最终的结果我们可以发现:两个子类继承一个父类(父类中有一个静态变量a),如果两个子类不重写这个变量的话,那么这两个子类的和父类调用的a是同一个a。

。。。。。。。。。。。。。。。。。。。。。。分割线。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

如果在父类中定义了一个成员变量a。

然后我们定义两个子类,看看这两个子类继承的父类中的成员变量是什么情况?我们同样注意在子类的时候不能重写static int a = a+2; 因为你一旦 这样重写了,那么这个子类的a肯定就不是父类的那个a了,并且还是同样得在方法中或者初始化块中使用未重写的从父类继承的a变量。

我们读完代码会发现:两个子类继承了一个父类(父类中有一个成员变量),那么这两个子类之间关于a是不存在共享关系的。但是每个子类和父类都是共享的同一个值a。(当然前提是你没有在子类中重写a变量,如果重写了,每一个子类与父类也不存在共享a的关系了)。

还有我们最后new Parent().a (这么写是因为在静态变量中不能调用非静态成员变量)看到得到的是5.因为这个新new出来的父类的实例和这两个子类并没有关系。

over~

java继承的一些问题的更多相关文章

  1. Java继承与组合

    Java继承与组合 继承 java 中使用extends关键字表示继承关系,当创建一个类时,如果没有明确指出要继承的类,则是隐式地从根类Object进行继承. 子类继承父类的成员变量 子类能够继承父类 ...

  2. JAVA继承时构造函数的问题

    今天看到java继承部分时,关于构造函数是否继承以及如何使用时遇到了点问题,后来查找相关资料解决了. 下面是我个人的总结: 先创建一个父类,里面有两个构造函数: public class Jisuan ...

  3. Java继承和接口

    接口最关键的作用,也是使用接口最重要的一个原因:能上溯造型至多个基础类.使用接口的第二个原因与使用抽象基础类的原因是一样的:防止客户程序员制作这个类的一个对象,以及规定它仅仅是一个接口.这样便带来了一 ...

  4. Java继承的初始化

    /** * Created by xfyou on 2016/11/2. * Java继承的初始化 */ public class Beetle extends Insect { int k = pr ...

  5. Java—继承、封装、抽象、多态

    类.对象和包 1) 面向对象编程(Object Oriented Programming ,简称 OOP):20世纪70年代以后开始流行. 2) 结构化编程与面向对象编程的区别: A. 在结构化编程中 ...

  6. java继承关系中成员变量,构造方法,成员方法的关系

    Java继承中的成员关系 A:成员变量 a:子类的成员变量名称和父类中的成员变量名称不一样,这个太简单写那个名字就访问那个名字! b:子类的成员变量名称和父类中的成员变量名称一样,这个怎么访问呢? 子 ...

  7. JAVA继承时this和super关键字

    JAVA继承时this和super关键字 本文主要讨论在方法前使用this或super关键字时,编译器在什么地方查找对应的函数. 在子类中指定this关键字.首先在本类中查找,如果本类中找不到,再在父 ...

  8. JAVA 继承中的this和super

    学习java时看了不少尚学堂马士兵的视频,还是挺喜欢马士兵的讲课步骤的,二话不说,先做实例,看到的结果才是最实际的,理论神马的全是浮云.只有在实际操作过程中体会理论,在实际操作过程中升华理论才是最关键 ...

  9. java 继承、重载、重写与多态

    首先是java 继承.重载和重写的概念 继承: 继承的作用在于代码的复用.由于继承意味着父类的所有方法亦可在子类中使用,所以发给父类的消息亦可发给衍生类.如果Person类中有一个eat方法,那么St ...

  10. Java 继承中构造方法的执行顺序问题

    在Java中,如果一个类没有任何显式创建的构造器则该类默认会有一个无参构造器:如果显式创建了有参构造器则该类就不再有默认无参构造器. 在Java继承中,构造器并不能被继承,而是被显示或隐式调用. 1. ...

随机推荐

  1. 我的Android进阶之旅------>解决DownloadManager报错java.lang.SecurityException: Invalid value for visibility: 2

    1.问题描述 今天使用Android系统的DownloadManager进行下载操作时,爆了如下所示的错误: java.lang.RuntimeException: Unable to start s ...

  2. 详解JMeter函数和变量(转载)

    详解JMeter函数和变量(1) JMeter函数可以被认为是某种特殊的变量,它们可以被采样器或者其他测试元件所引用.函数调用的语法如下: ${__functionName(var1,var2,var ...

  3. Java实现八大排序之冒泡排序

    冒泡排序 冒泡排序的定义: 冒泡排序(Bubble Sort)它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来.走访数列的工作是重复地进行直到没有再需要交换,也就是说该 ...

  4. 005-TCP传输控制协议

    一.概述 传输控制协议(英语:Transmission Control Protocol,缩写为 TCP)是一种面向连接的.可靠的.基于字节流的传输层通信协议,由IETF的RFC 793定义.在简化的 ...

  5. Redis五(其他操作命令)

    其他常用操作 delete(*names) # 根据删除redis中的任意数据类型 exists(name) # 检测redis的name是否存在 keys(pattern='*') # 根据模型获取 ...

  6. Pig、Hive、MapReduce 解决分组 Top K 问题(转)

    问题: 有如下数据文件 city.txt (id, city, value) cat city.txt 1 wh 5002 bj 6003 wh 1004 sh 4005 wh 2006 bj 100 ...

  7. Eclipse ftp插件

    一个比较好的插件:esftp 下载地址http://sourceforge.net/projects/esftp/ 解压后放到plugins目录下重启即可. 配置estfp, 右击项目crm-> ...

  8. MySQL 多表查询(Day43)

    阅读目录 一,介绍 二,多表连接查询 三,符合条件链接查询 四,子查询 五,综合练习 ========================================================= ...

  9. TRegExpr正则表达式

    TRegExpr正则表达式 2006-10-24 10:55 DELPHi中的REGEXPR   [ 2006-03-29 11:33:46 am | Author: Admin ] 其实这个Pasc ...

  10. WinIo简介

    WinIo简介 一日发现SendInput对某程序居然无效,无奈只好开始研究WinIo.上网查了很多资料,发现关于WinIo模拟鼠标键盘的资料很少,有的也只是支言片语讲的不是很详细,而且大部分都是关于 ...