黑马程序员技术交流社区

标题: 求解 [打印本页]

作者: 大手牵小手    时间: 2015-3-3 21:15
标题: 求解
  1. class A
  2. {
  3.         public double y=11.456789;
  4.         public void f()
  5.         {
  6.                 y=y+1;
  7.                 System.out.printf("y=%f\n",y);
  8.         }
  9. }

  10. class B extends A
  11. {
  12.         int y = 0;
  13.         public void g()
  14.         {
  15.                 y=y+100;
  16.                 System.out.printf("y=%d\n",y);
  17.         }
  18. }
  19. public class Example {

  20.         public static void main(String[] args) {
  21.                 // TODO Auto-generated method stub
  22.                 B b =new B();
  23.                 b.y = 200;
  24.                 b.g();
  25.                 b.f();
  26.         }

  27. }
复制代码

不懂b.f()的值,求解
作者: z47057554    时间: 2015-3-3 21:47
好歹给类跟变量起个好理解,好记的名字
作者: z47057554    时间: 2015-3-3 21:57
  1. class A
  2. {
  3.         public double y=11.456789;
  4.         public void f()
  5.         {
  6.                 this.y=this.y+1;
  7.                 System.out.printf("y=%f\n",this.y);
  8.         }
  9. }
  10. //相当于
  11. class B extends A
  12. {
  13.         int y = 0;
  14.         public void g()
  15.         {
  16.                 this.y=this.y+100;
  17.                 System.out.printf("y=%d\n",y);
  18.         }
  19.         //相当于子类中有这样的方法,继承过来的
  20.    public void f()
  21.   {
  22.       super.y=super.y+1;
  23.       System.out.printf("y=%f\n",super.y);
  24.   }
  25. }
  26. public class Example {

  27.         public static void main(String[] args) {
  28.                 // TODO Auto-generated method stub
  29.                 B b =new B();
  30.                 b.y = 200;
  31.                 b.g();
  32.                 b.f();
  33.         }
复制代码




作者: 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