我有一个抽象类" Homework"以及另外4个扩展它的类(我只粘贴了其中一个,因为它们是相同的)。程序编译,但输出如下: null - 必读0页 null - 必读0页 null - 必读0页 null - 必读0页
我应该改变什么才能让它发挥作用?
测试人员类
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";
}
}
答案 0 :(得分:0)
如果您希望更改这些字段,则需要为pagesRead
中的字段typeHomework
和MyMath
实际分配值。
您只能在同一个类中分配私有字段 - 这些字段与父类中的同名字段不同。
您也可以在父类中创建字段protected
,并从子类中删除字段。