class A extends Employee { private String major; public A(String n, String m) { super(n); major = m; } public String getMajor() { return major; }//这里少个括号 }
public class Test2 { public static void main(String[] args) { Employee[] employee = new Employee[2]; employee[0] = new A("ert", "computer"); employee[1] = new B("rty", 5000);
类A和B都少了一个实现的方法
public double getSalary()
{
}
楼主,看红色字体,你这个方法的返回值是double的,方法要有返回值,
可以这么写 public void getSalary{}
试试楼主别忘了结贴
建议你来我的博客下载个项目实例,相信对你学习比较大的帮助,里面一般的用法都有了
public double getSalary() {
return null;
}
我根据您的提示,终于实现了输出。我把改动后放在这里;ipmort java.util.*;
public class Test2
{
public static void main(String[] args)
{
Employee[] employee = new Employee[2];
employee[0] = new A("ert", "computer");
employee[1] = new B("rty", 5000);
for(Employee i: employee)
{
System.out.println(i.getName()+","+i.getMajor()+","+i.getSalary());
}
}
}
abstract class Employee
{
private String name;
public Employee(String n)
{
name = n;
}
public String getName()
{
return name;
}
public abstract String getMajor();
public abstract double getSalary();
}
class A extends Employee
{
private String major;
public A(String n, String m)
{
super(n);
major = m;
}
public String getMajor()
{
return major;
}
public double getSalary()
{
return (double)0; //double时用null不行, 改为0后可以了。
}
}
class B extends Employee
{
private double salary;
public B(String n, double x)
{
super(n);
salary = x;
}
public double getSalary()
{
return salary;
}
public String getMajor()
{
return null; //这里的返回值为String,所以可以用null.
}
}这个问题总算解决了。我都结贴了,今天意外要用到这个程序过来看看,看来了wuer0520的回复,根据提示我成功实现了输出。多谢。
但是我已经结贴了,所以没办法给wuer0520分,对不住了。