黑马程序员技术交流社区
标题:
求解
[打印本页]
作者:
大手牵小手
时间:
2015-3-3 21:15
标题:
求解
class A
{
public double y=11.456789;
public void f()
{
y=y+1;
System.out.printf("y=%f\n",y);
}
}
class B extends A
{
int y = 0;
public void g()
{
y=y+100;
System.out.printf("y=%d\n",y);
}
}
public class Example {
public static void main(String[] args) {
// TODO Auto-generated method stub
B b =new B();
b.y = 200;
b.g();
b.f();
}
}
复制代码
不懂b.f()的值,求解
作者:
z47057554
时间:
2015-3-3 21:47
好歹给类跟变量起个好理解,好记的名字
作者:
z47057554
时间:
2015-3-3 21:57
class A
{
public double y=11.456789;
public void f()
{
this.y=this.y+1;
System.out.printf("y=%f\n",this.y);
}
}
//相当于
class B extends A
{
int y = 0;
public void g()
{
this.y=this.y+100;
System.out.printf("y=%d\n",y);
}
//相当于子类中有这样的方法,继承过来的
public void f()
{
super.y=super.y+1;
System.out.printf("y=%f\n",super.y);
}
}
public class Example {
public static void main(String[] args) {
// TODO Auto-generated method stub
B b =new B();
b.y = 200;
b.g();
b.f();
}
复制代码
作者:
wdhm5423
时间:
2015-3-3 22:57
本帖最后由 wdhm5423 于 2015-3-3 23:00 编辑
在继承的时候,允许子类存在与父类同名的成员变量,但是并不覆盖父类的成员变量,他们同时存在。就近原则。
b.y=200 就近调用子类的 y =200(b是子类)
b.g() g方法就近调用子类的y(g在子类中)
b.f() f方法就近调用父类的y(f在父类中)
作者:
大手牵小手
时间:
2015-3-4 15:41
wdhm5423 发表于 2015-3-3 22:57
在继承的时候,允许子类存在与父类同名的成员变量,但是并不覆盖父类的成员变量,他们同时存在。就近原则。 ...
我懂了!三克油!
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2