黑马程序员技术交流社区

标题: 求指导 [打印本页]

作者: Sasson    时间: 2013-11-7 21:04
标题: 求指导
本帖最后由 Sasson 于 2013-11-7 21:56 编辑

class Fu{
        int num = 4;
        Fu(){
                num = 5;
        }
}
class Zi extends Fu{
        int num = 6;
        public void method(){
                int num = 7;
                System.out.println(num);
        }
}

class Test{
        public static void main(String[] args) {
                Zi z = new Zi();
                z.method();
        }
}
---------------------------------------------------------------------------------------------------------------
问会有什么结果,如果想输出6怎么改,如果想输出5怎么做,能否输出4?
作者: 麦者    时间: 2013-11-7 21:27
  1. class Zi extends Fu{
  2.     int num = 6;
  3.     public void method() throws NoSuchFieldException, SecurityException{
  4.             int num = 7;
  5.             System.out.println(num);//输出7
  6.             System.out.println(this.num);//输出6
  7.             System.out.println(new Fu().num);//输出5
  8.          
  9.     }
  10. }
复制代码

作者: 零下五度的水    时间: 2013-11-7 21:32
输出7;Syso:this.num;Syso:super.num;
输出4难度有点大啊。。要看你这个允许改动多少代码了
父类加个构造方法,子类调用另一个父类构造,代码很多就是了
作者: --_.Is’攸稀    时间: 2013-11-7 21:45
  1. class Zi extends Fu{
  2.         int num = 6;
  3.         public void method(){
  4.                 int num = 7;
  5.                 //输出的是7
  6.                 System.out.println(num);
  7.                 //或输出6:
  8.                 System.out.println(this.num);
  9.                 //输出5则:
  10.                 System.out.println(super.num);
复制代码
根据你的代码写出来的~应该输出不了4把~


作者: Sasson    时间: 2013-11-7 21:55
{:soso_e103:}谢谢了




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