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