子类java中具有相同名称的属性

穆罕默德·沙拉夫·阿里
public class HelloWorld
{
  protected int num = 12;

  public void callme()
  {
    System.out.print(this.num);
  }

  public static void main(String[] args)
  {
    HelloWorld myObject1 = new HelloWorld();
    myObject1.callme();
    OtherClass myObject2 = new OtherClass();
    myObject2.callme();
  }
}


public class OtherClass extends HelloWorld
{
  protected int num = 14;
}

为什么输出是“ 1212”而不是“ 1214”?在php中,其值为“ 1214”,而在Java中则不然。这背后的逻辑是什么?

他们是

callme()方法仅在基类中定义,因此return this.num;返回基类的实例变量。

Java中没有覆盖实例变量。

如果您要在子类中覆盖该方法,请添加

public void callme()
{
    System.out.print(this.num);
}

OtherClassmyObject2.callme();将返回14,因为它将执行callme()子类的方法,并因此访问子类实例变量。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

python中具有相同名称的函数的子类

Delphi XE-具有相同名称的父子类属性的Rest.JSON

如何获得在Django中其他类别下具有相同名称的垂直子类别?

从具有相同名称的库中包含具有相同名称的不同对象。

使用R为xml文件中的所有节点提取具有相同名称的属性

从具有相同名称的属性的接口继承

jQuery获取具有相同名称的属性值

区分具有相同名称的属性和方法

删除具有相同名称属性的表单值

CompositeConfiguration-具有相同名称的属性

属性和功能具有相同名称的模块声明

解构具有相同名称属性的内部对象

更改Java中的导入名称,或导入两个具有相同名称的类

在Jackson中反序列化具有相同名称但不同类型的属性?

Ansible在XML文件中编辑具有相同名称的多个属性

LINQ查询中具有相同名称的多个属性出错

如何使用for循环在xslt中处理具有相同名称但属性值不同的xml标记

具有相同名称的RLMObject子类不能在同一目标中包含两次

如何在硒中的不同标签中定位具有相同名称和相同属性的元素

UML 2.5:在包合并中,具有相同名称但具有不同类型的属性会发生什么?

创建具有相同名称的文件而不会覆盖Java

Java Servlet-获取具有相同名称的参数

具有相同名称的Java,静态和实例方法

具有相同名称的Java枚举和字段

具有相同名称的Java实例变量和方法

创建新的类,该子类继承具有相同名称的现有类

在MVC中处理具有相同名称的多个动作

在PowerShell中添加具有相同名称的XML元素

在MYSQL中查找具有相同名称的行