我无法从我的子类中获得构造函数来读取我放入其中的字符串



我正试图从我的子类中获取构造函数,以读取我放入其中的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);  
   }    
}  

这就是您应该做的。您应该传递类型所期望的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);  
 }

这是因为您正在将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);

最新更新