我试图从我的子类中获取构造函数来读取我放在其中的Strings
。我一直得到null
输出,当它应该是ChildrensBook
时,我很困惑该怎么做。感谢您的任何帮助。
这是我的任务:
设计并实现一组定义阅读材料类型的类:书籍,小说,杂志,技术期刊,教科书等。包括描述材料的数据值,例如页数和作者姓名。包括为每个类命名并打印相应消息的方法。创建一个主驱动程序类来实例化几个类。
我的Java代码:
驱动:
public class Reading{
public static void main(String[]args)
{
Book book = new Book(null, 0, 0, 0);
Magazine mag = new Magazine(null, 0, 0);
Journal journal = new Journal(null, 0, 0, 0);
Textbook txt = new Textbook(null, 0, 0, 0);
Manual manual = new Manual(null, 0, 0, 0);
book.print();
mag.print();
journal.print();
txt.print();
manual.print();
}
超类:
public class ReadingMaterial {
String type;
int pages, characters, numPictures;
public ReadingMaterial(String type, int pages, int characters, int numPictures)
{
this.type = type;
this.pages = pages;
this.characters = characters;
this.numPictures = numPictures;
}
public void print()
{
System.out.println("Reading Material Data: ");
System.out.println("");
System.out.println("Type of reading material: " +type);
System.out.println("Number of pages: " +pages);
System.out.println("Number of primary characters: " +characters);
System.out.println("Number of pictures: " +numPictures);
System.out.println("");
}
}
其中一个子类:
public class Book extends ReadingMaterial
{
public Book(String type, int pages, int characters, int numPictures)
{
super("ChildrensBook", 22, 5, 20);
}
}
答案 0 :(得分:0)
那是因为你将null
传递给了你的孩子班:
Book book = new Book(null, 0, 0, 0);
Magazine mag = new Magazine(null, 0, 0);
Journal journal= new Journal(null, 0, 0, 0);
Textbook txt = new Textbook(null, 0, 0, 0);
Manual manual= new Manual(null, 0, 0, 0);
答案 1 :(得分:0)
这是你应该做的。您应该传递您希望类型具有的String
。
Book book = new Book("ChildrensBook", 0,0,0);
您收到null
因为您传递了null
。
编辑:
在命名变量时,请使用正确的编码标准。变量应以小写字母开头,然后应该是驼峰式的。
public Book(String nameOfTheBook, int pages, int characters, int numPictures){
super(nameOfTheBook,22,5,20);
}