黑马程序员技术交流社区

标题: 继承 [打印本页]

作者: zc332750    时间: 2014-2-7 14:45
标题: 继承
本帖最后由 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!");
        }
}
运行结果为什么是“真的好吗”


作者: 651012160    时间: 2014-2-7 15:38

  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
建立子类对象,调用子类方法,出现的结果当然是子类方法里的结果
作者: 那些人之一    时间: 2014-2-7 20:39
那些人之一 发表于 2014-2-7 20:36
建立子类对象,调用子类方法,出现的结果当然是子类方法里的结果

因为你在子类方法里又定义了一个name   String类型的对象。而你那个输出语句里的name,隐藏的形式应该是this.name;  this是调用,调用this者里面的。而this在子类方法里,所以是调用子类方法里的name




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