我正在研究继承问题。我有一本超级的书。然后我有一个扩展书的课程电话。然后我有一个使用数组生成输出的驱动器PolyMain。我的任务是:
* Phone类的构造函数应该总结whitePages + yellowPages以获得书中的总页数,并将其作为超级调用中的单个参数传递给Book超类。请记住,书中的总页数和书名都是在Book类的构造函数中设置的。
修改PolyMain类以创建至少一个电话簿并将其存储在库中。您现在应该能够打印库而无需修改PolyMain类中定义的打印方法。*
输出应该有标题,页数(总数),黄页数和#白页。下面的程序给了我输出。
然而,PolyMain添加了整数示例:library [2] = new Novel(" Animal Farm",250,9);已经添加了" 250和9"以及为页面和章节打印的内容。
如果我必须将数字添加到PolyMain类,我如何确定我的构造函数是在总结yellowPages和whitePages? library [3] = new Phone(" Black Hills Directory",600,350,250); 如果我不添加" 600,350,250"或一些整数我得到一个错误,它不会编译。
以下是超类的代码:
public class Book
{
private String title;
private int pages;
public Book(String title, int pages)
{
this.title = new String(title);
setPages(pages);
}
public void setPages(int pages)
{
this.pages = pages;
}
public int getPages()
{
return pages;
}
public void print()
{
System.out.print(title + " has " + pages + " pages");
}
}
这是我的孩子班。
public class Phone extends Book
{
private int yellowPages = 250;
private int whitePages = 350;
public Phone (String title, int pages, int whitePages, int yellowPages)
{
super(title, pages);
this.whitePages = whitePages;
this.yellowPages = yellowPages;
pages = whitePages + yellowPages;
}
public void print()
{
super.print();
System.out.println(", " + yellowPages + " yellowPages, " + "and " +
whitePages + " whitePages." );
}
}
这是我的驱动程序类。
public class PolyMain
{
public static void main(String [] args)
{
Book [] library = new Book [5];
library[0] = new Novel("Jaws", 300, 15);
library[1] = new Almanac("New World ", 100, 50);
library[2] = new Novel("Animal Farm ", 250, 9);
library[3] = new Phone("Black Hills Directory ", 600, 350, 250);
listBooks(library);
}
static void listBooks(Book [] library)
{
for (int i = 0; i < library.length && library[i] != null; i++)
library[i].print();
}
}
答案 0 :(得分:1)
您的规范说明了一切“Phone类的构造函数应该总结whitePages + yellowPages以获取书中的总页数,并将其作为超级调用中的单个参数传递给Book超类。”
您可以使用3个参数设置Phone构造函数 - 标题,白页和黄页
现在使用title为title和whitePages + yellowPages作为页面调用超类'构造函数