晕。我发现错误了SORRY,不好意思,我太粗心大意,呵呵
abstract class emp{
 public String name;
 public int age;
  emp(String x,int y)
  { 
    String name=new String(x);  //错误出在这里
    age=y;
  }
 
  abstract void disp();}有些不明白的是,如果加了String 等于重新定义了一个name变量,可是上面还是有一个name呀!~~ 编译器为什么查不出重复定义呢?

解决方案 »

  1.   

    是在emp的构造函数里的重名变量就无所谓吗?因为它的生存周期还是什么呢?
      

  2.   

    abstract class emp{
     public String name;
     public int age;
      emp(String x,int y)
      { 
        String name=new String(x);
        age=y;
      }
     
      abstract void disp();}
    你用的是
     public String name;
     public int age;
    这不是解封了,
    如果非要用
    也是
    protect 型
     emp(String x,int y)
      { 
        String name=new String(x);
        age=y;
      }String name=new String(x);
    name 是 内部变量,不是this.name
    改为
      this.name=new String(x);
      

  3.   

    to yashin (灰色天空)
     是生命周期和作用域的关系。
      

  4.   

    我也初学者 也许会遇上同样的问题 先MARK