Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
子类java中具有相同名称的属性_Java_Oop - Fatal编程技术网

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

子类java中具有相同名称的属性,java,oop,Java,Oop,为什么输出是“1212”而不是“1214”?在php中为“1214”,但在java中为“1214”。这背后的逻辑是什么?callme()方法只在基类中定义,因此返回this.num

为什么输出是“1212”而不是“1214”?在php中为“1214”,但在java中为“1214”。这背后的逻辑是什么?

callme()
方法只在基类中定义,因此
返回this.num
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;
}

对于
OtherClass
myObject2.callme()
将返回14,因为它将执行子类的
callme()
方法,从而访问子类实例变量。

这与PHP有什么关系?为什么使用PHP标记?可能与
public void callme()
{
    System.out.print(this.num);
}