Java – 父类和子类拥有同名的成员变量取值情况

参考文章 结论:

当子类的成员变量与父类同名时,若对该成员变量进行操作的方法继承于父类,则改变和获取的是父类的成员变量。若对该成员变量进行操作的方法为子类所独有,或override父类,则改变和获取的是子类自己的成员变量。

当子类拥有与父类同名的成员变量时,父类的成员变量并不会被覆盖,而是与子类的成员变量分别存储在不同的空间,其值仍然可以被改变和访问。

class Employee{

private String title = "Employee";

public void setTitle(String title) {

this.title = title;

}

public String getTitle() {

return this.title;

}

}

class Manager extends Employee{

private String title = "Manager";

}

class Director extends Employee{

private String title = "Director";

public String getTitle() {

return this.title;

}

}

public class SameName {

public static void main(String[] args) {

Employee e = new Employee();

Employee m = new Manager();

Director d = new Director();

System.out.println(e.getTitle());

//子类Manager的getTitle方法继承于父类Employee,

//因此调用时,访问的是父类的同名成员变量

System.out.println(m.getTitle());

//子类Director override父类的getTitle方法,

//因此调用时,访问的是子类自己的成员变量

System.out.println(d.getTitle());

//子类Director的setTitle方法继承于父类Employee,

//因此调用时,改变的是父类的同名成员变量

d.setTitle("President");

System.out.println(d.getTitle());

}

}

运行输出结果为

Employee Employee Director Director

因此,当子类的成员变量与父类同名时,若对该成员变量进行操作的方法继承于父类,则改变和获取的是父类的成员变量。

若对该成员变量进行操作的方法为子类所独有,或override父类,则改变和获取的是子类自己的成员变量。

java子类和父类有相同成员_Java -- 父类和子类拥有同名的成员变量的情况相关推荐

  1. java继承时父类常量覆盖吗_Java父类继承中的static和final用法

    1.父类中staitic修饰的静态方法,不能覆盖.不能继承. 2.父类中staitic修饰的变量或常量,能覆盖.不能继承. static修饰的变量和方法,只属于类本身,不属于对象:当声明一个对象时,并 ...

  2. java 父类私有成员_java父类私有成员

    public class UnSafeSequence { public class TestMath{ private TestMath(){ System.out.println("父类 ...

  3. java子类访问父类私有成员_Java中子类可以继承父类的私有成员,但是不能(直接)访问!!!...

    今天学习Java三大特征之一:继承的时候,产生了一些疑问,最后通过网上查找和各位网友的帮助,终于拔开云雾见日出.下面进入正题: 首先:子类对象拥有父类中的所有属性和方法:在这里,很多人会问构造器可以继 ...

  4. c 子类对象 访问父类对象受保护成员_java面向对象总结

    前言:文章参考<java疯狂讲义>进行总结和归纳,知识要进行输出才算真正的有用. 在java的世界里,一切皆为对象,类是对对象的抽象,来一个例子:Person类 public 有了类,就可 ...

  5. java 子类 同名参数_Java -- 父类和子类拥有同名变量

    Java -- 父类和子类拥有同名变量 Java -- 父类和子类拥有同名变量 Java – 父类和子类拥有同名变量 请仔细观察系列两段程序的不同之处:一个Son类重写print方法,另一个则没有重写 ...

  6. java 父类是抽象类 定义private的属性 子类继承_java继承、多态、接口、抽象类定义及应用...

    继承:关键字extends java 中继承是单继承 允许多个子类继承一个父类,不允许一个子类继承多个父类. 继承是继承父类的所有属性和方法,但并不是所有的属性和方法都可被子类调用: 子类继承父类是必 ...

  7. 在java继承机制中 父类中的私有_Java中子类能继承父类的私有属性吗?

    前段时间去听老师讲课的时候,老师告诉我子类是可以继承父类所有的属性和方法的.当时我是极其疑惑的,因为之前学校考试时这个考点我记得很清楚:子类只能继承父类的非私有属性和方法.老师给我的解释是这样的--先 ...

  8. java 子类的同名方法_java 父类子类有同名方法时如何调用的实现

    父类引用默认调用子类重写的方法 如果父类的引用p指向了子类的实例,则通过这个引用p访问同名方法时,调用的是子类重写的方法. 父类引用p可以指向不同的子类,调用不同子类重写的不同的同名方法,进而达到类间 ...

  9. java如何调用父类的实例对象_java子类调用父类的方法中包含子类重写的实例方法...

    java子类调用父类的方法中包含子类重写的实例方法 # 看题目是不是很绕,这个我也不知道怎么才能更简单的表达了 # 先看代码: public class Common { public static ...

最新文章

  1. 内网渗透测试:NTLM Relay攻击分析
  2. UiBot Creator v1.2火热体验中……
  3. 服务器硬盘 主板,服务器主板和普通主板有什么区别?
  4. 轻轻的你来了,悄悄的你走了,邓总没有带走一个bug
  5. 月入1万的工作,招不到人,怎么办?
  6. java中JTextArea类_Swing JTextArea类
  7. Checkio代码闯关小计
  8. Django应用部署 - 上线指南
  9. 经典神经网络 -- ResNet : 设计原理与pytorch实现
  10. 加州ucla 计算机学校,美国加州大学洛杉矶分校UCLA计算机硕士CS录取
  11. 【报错】CUDA error: device-side assert triggered
  12. 2012年腾讯实习生笔试附加题
  13. 《降龙之剑》刷马坐标 BOSS坐标,鉴定出好马的时间段
  14. 电脑之间快速传输超大文件(100GB以上)的方法
  15. 【拒绝内卷】狼吃羊的AI奖励机制不合理: 内卷,如何解决?
  16. 先验概率和后验概率那点事儿
  17. STM32CubeMX生成工程失败
  18. unity3d答题系统
  19. css新特性:线性渐变详解(重复性线性渐变、径向渐变、重复性径向渐变的使用)
  20. ibm服务器 t系列,IBMT

热门文章

  1. 不等号属于不等式吗_考研专业课备考时,仅仅多刷几遍目标院校的期末考试题就够吗?...
  2. 【2021.02.09更新】数学常用基本公式
  3. 几个有用的word小技巧,保准提升效率~
  4. 微服务之数据同步Porter 1
  5. spring boot集成mybatis+事务控制
  6. 九章算法强化班 - 课程大纲
  7. UVA 2474 - Balloons in a Box 爆搜
  8. NHibernate实例化类部分属性
  9. 封装js千分位加逗号和删除逗号
  10. Office开发程序集版本及部署问题