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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© zc332750 中级黑马   /  2014-2-7 14:45  /  848 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 zc332750 于 2014-2-8 09:37 编辑

class Fu
{
         String name ="我很好";
}
class Zi extends Fu
{
        String name = "你好";

        public void show(){
              String name = "真的好吗";
          System.out.println(name);
        }
}
class ExtendsDemo1
{
        public static void main(String[] args)
        {
                Zi z = new Zi();
                z.show();
                //System.out.println("Hello World!");
        }
}
运行结果为什么是“真的好吗”

3 个回复

倒序浏览

  1. class Fu
  2. {
  3.          String name ="我很好";
  4. }
  5. class Zi extends Fu
  6. {
  7.         String name = "你好";

  8.         public void show(){    //方法
  9.               String name = "真的好吗";
  10.           System.out.println(name);
  11.         }
  12. }
  13. class ExtendsDemo1
  14. {
  15.         public static void main(String[] args)
  16.         {
  17.                 Zi z = new Zi();  //创建里Zi类的一个对象z
  18.                 z.show();   //调用对象z的show方法。打印name值所以打印的是:真的好吗
  19.                 //System.out.println("Hello World!");
  20.         }
  21. }
复制代码


回复 使用道具 举报
建立子类对象,调用子类方法,出现的结果当然是子类方法里的结果
回复 使用道具 举报
那些人之一 发表于 2014-2-7 20:36
建立子类对象,调用子类方法,出现的结果当然是子类方法里的结果

因为你在子类方法里又定义了一个name   String类型的对象。而你那个输出语句里的name,隐藏的形式应该是this.name;  this是调用,调用this者里面的。而this在子类方法里,所以是调用子类方法里的name
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马