JAVA中子类能修改父类吗?

来源:百度知道 编辑:UC知道 时间:2024/06/06 20:12:32
JAVA中子类能修改父类吗?如果能的话,在子类里调用父类的东西是修改后的了,可直接使用父类,还是原来的东西.

class Father
{ int x=10,y=20;
void speak()
{ System.out.println("I am Father:"+"x="+x+":y="+y); }

void calculate(String s)
{ System.out.println(s+"x*y="+x+"*"+y+"="+x*y); }
}

class Son extends Father
{ int x=30;
void speak()
{System.out.println("I am Son:"+"x="+x+":y="+y);
}
void this_super()
{ super.x=100; //修改父类中的x,y值
super.y=200;
super.speak();
this.speak();
calculate("在子类中直接调用");//验证父类中的值已被修改
x=200;//this.x=200;
y=300;//this.y=300;向父类追踪,相当super.y
}
}

public class Ex4_3
{ public static void main(String args[])
{
Father father=new Father();
Son son=new Son();
System.out.println("----调用s

----调用son对象的修改数据方法-----
I am Father:x=100:y=200
I am Son:x=30:y=200
在子类中直接调用x*y=100*200=20000
----调用father对象计算方法-----
修改后用father对象调用x*y=10*20=200

子类不能修改父类的方法,但是可以覆盖,就是子类中参数与名称都与父类相同,在子类中调用时调用子类的方法,若在父类中依旧调用父类中原方法。

看的我这个糊涂啊。后来才发现,原来Father father=new Father();
Son son=new Son();
这两个对象之间没有任何关系。因此,你所谓的子类修改父类是不会发生的。

子类里可以显式的调用父类的方法。

看的我这个糊涂啊。后来才发现,原来Father father=new Father();
Son son=new Son();
这两个对象之间没有任何关系。因此,你所谓的子类修改父类是不会发生的。

调用重写后的,不过要是静态方法就调用重写前的。