0
我有一个抽象类“家庭作业”和其他4类扩展它(我只粘贴其中一个,因为它们是相同的)。该程序编译,但输出看起来是这样的: 空 - 必须阅读0页 空 - 必须阅读0页 空 - 必须阅读0页 空 - 必须阅读阅读字段有空值
0页,我应该怎么改变得到它上班?
Tester类
public class testHomework
{
public static void main(String[] args) {
ArrayList<Homework> list = new ArrayList<Homework>();
list.add(new MyMath(1,"Math"));
list.add(new MyEnglish(3,"English"));
list.add(new MyJava(3,"Java"));
list.add(new MyScience(2,"Science"));
for (Homework s : list)
{
System.out.println(s);
}
}
抽象类作业
public abstract class Homework
{
private int pagesToRead;
private String typeHomework;
{
// initialise instance variables
pagesToRead = 0;
typeHomework = "none";
}
public Homework(int pages, String hw)
{
pagesToRead = pages;
typeHomework = hw;
}
public abstract void createAssignment(int pages);
public int getPages()
{
return pagesToRead;
}
public void setPagesToRead(int p)
{
pagesToRead = p;
}
public String getTypeHomework()
{
return typeHomework;
}
public void setTypeHomework(String hw)
{
typeHomework = hw;
}
MYMATH
public class MyMath extends Homework
{
private int pagesRead;
private String typeHomework;
public MyMath(int pages, String hw)
{
super(pages,hw);
}
public void createAssignment(int pages)
{
setTypeHomework("Math");
setPagesToRead(pages);
}
public String toString()
{
return typeHomework + " - must read " + pagesRead + " pages";
}
}
从您的MyMath类中删除成员变量(pagesRead,typeHomework) - 您正在隐藏它们。然后将toString方法移到Homework类,或者在MyMath的toString方法中使用“getTypeHomework”和“getPages”。 – fschaper 2015-02-07 16:02:05
另外,这不是'方法重写return null',它读取具有空值的字段。 – 2015-02-07 16:03:00
谢谢,它解决了这个问题。 – apsstudent 2015-02-07 16:34:30