黑马程序员技术交流社区

标题: 求助一条题 [打印本页]

作者: AnElse    时间: 2015-1-22 14:46
标题: 求助一条题
  1. class Fu
  2. {
  3.         int x = 3;
  4.         int y = 4;

  5.         int set()
  6.         {
  7.                 return x+y;
  8.         }
  9. }
  10. class Zi extends Fu
  11. {
  12.         int x;
  13.         Zi(int x)
  14.         {
  15.                 this.x = x;
  16.         }
  17. }

  18. class Test1
  19. {
  20.         public static void main(String[] args)
  21.         {
  22.                 Zi z = new Zi(2);
  23.                 System.out.println(z.set());//为什么输出是父类的x和y的和7??

  24.                 Fu f = z;
  25.                 System.out.println(f.x);
  26.         }
  27. }
复制代码



作者: gx_lv    时间: 2015-1-22 15:07
因为子类并没有复写set()方法,只是继承
作者: 小棽    时间: 2015-1-22 15:59
本帖最后由 小棽 于 2015-1-22 16:04 编辑

因为你子类没有重写父类的set()方法,当你子类没有set()方法的时候,会调用父类的set()方法,所以打印出来的是父类的x和y的和7重写父类方法的注意点:权限修饰符最好一样(子类的权限修饰符可以比父类的更大,但是不能更小,更小的话编译会不通过),返回值类型一样,方法名一样,参数类型一样


作者: AnElse    时间: 2015-1-23 12:03
小棽 发表于 2015-1-22 15:59
因为你子类没有重写父类的set()方法,当你子类没有set()方法的时候,会调用父类的set()方法,所以打印出来 ...

谢谢!!!
作者: AnElse    时间: 2015-1-23 12:05
gx_lv 发表于 2015-1-22 15:07
因为子类并没有复写set()方法,只是继承

谢谢解答!




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2