2011-05-06 158 views
-3
class Person { 
    String name = “No name"; 
    public Person(String nm) { name = nm; } 
} 

class Employee extends Person { 
    String emplD = “0000”; 
    public Employee(String id) { empID = id; } 
} 

public class EmployeeTest { 
    public static void main(String[ ] args) 
    { 
     Employee e = new Employee(”4321”); 
     System.out.println(e.empID); 
    } 
} 
+3

为什么你认为有错误?请问一个*适当的*问题。 – 2011-05-06 09:32:20

+0

是什么问题? – Ikke 2011-05-06 09:32:34

+3

我能看到的一个问题是可怕的缩进。 – Ingo 2011-05-06 09:33:56

回答

1

变化“No name’“No name"(收盘报价)

1

也许是在这里:

String name = “No name’;

它应该是:

String name = "No name";

而且,我不知道如果这是你从d粘贴的编辑器卷板机这一点,但是这是错误太:

Employee e = new Employee(”4321”);

应该是:

Employee e = new Employee("4321");

0

你EMPID场不公钥/有没有为它存取方法/它没有被定义为属性。如果除了源代码和模糊的帖子标题之外,绝对不提供有关错误的信息,也不要期望人们提供帮助。

1

改变这一行

String name = “No name’;

到:

String name = “No name";

检查结束qoutes。

3

员工的构造函数必须调用其超强的构造,人的构造函数。

public class Person 
{ 
    private String name; 

    public Person(String nm) 
    { 
    this.name = nm; 
    } 

    public String getName() 
    { 
    return this.name; 
    } 
} 

public class Employee extends Person 
{ 
    private String emplD; 

    public Employee(String nm, String id) 
    { 
    super(nm); 
    this.empID = id; 
    } 

    public String getId() 
    { 
    return this.empID; 
    } 
} 

public class EmployeeTest 
{ 
    public static void main(String[] args) 
    { 
    Employee e = new Employee("Some Name", "4321"); 
    System.out.println(e.getID()); 
    } 
} 
1

一些事情:

  1. 您使用了错误的那种在你的字符串引号字符。您需要使用"。不',或者

  2. Person类没有默认构造函数。正因为如此,你必须显式调用super("some name");为您Employee构造函数的第一行(我建议增加一个构造函数既nameemployeeId作为参数)。

  3. 您申报的财产为emplD(用小写字符L),但你试图给它empID(以大写字符I)。你可以任意调用它,但名字需要在两个地方匹配。

  4. 你对象的设计违反了封装的基本原则。 nameempID属性应该是私有字段,如果外部类需要访问这些值,则应提供适当的公共getter方法。换句话说,而不是e.empID你应该能够说e.getEmpID()

  5. 在单个文件中定义多个类通常不是很好的编码风格,特别是当所有类都可公开访问时。

0

你要调用的类`Employeesuper(ID)的构造函数的超类(Person)的构造;请在下面找到正确的代码。

public Employee(String id) {super(id);empID =id; 
0

调用超类构造函数将解决问题!

public class Person { 
    String name = "No name"; 
    public Person(String nm) { name = nm; } 
    } 

    public class Employee extends Person { 
    String empID = "0000"; 
    public Employee(String id) { 
    super("Some Name"); 
    empID = id; } 
    } 

    public class EmployeeTest { 
    public static void main(String[] args){ 
    Employee e = new Employee("4321"); 
    System.out.println(e.empID); 
    } 
    }