A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© Sasson 中级黑马   /  2013-11-7 21:04  /  997 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 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?

4 个回复

倒序浏览
  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. }
复制代码
回复 使用道具 举报
输出7;Syso:this.num;Syso:super.num;
输出4难度有点大啊。。要看你这个允许改动多少代码了
父类加个构造方法,子类调用另一个父类构造,代码很多就是了
回复 使用道具 举报
  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把~

回复 使用道具 举报
{:soso_e103:}谢谢了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马