Я выполняю домашнее задание для курса по программированию на Java, и у меня возникают проблемы с пониманием концепции подкласса.
Вот вопрос:
Создайте класс с именемКнига, которая содержит поля данных для заголовка и количества страниц.Включите методы get и set для этих полей.Затем создайте подкласс с именем «Учебник», который содержит дополнительное поле, содержащее уровень оценки для учебника, и дополнительные методы для получения и установки поля уровня оценки.Напишите приложение, которое демонстрирует использование объектов каждого класса.Сохраните файлы как Book.java, Textbook.java и DemoBook.java.
Вот мой код для Book.java:
public class Book
{
String bookTitle;
int numPages;
private void setBTitle(String title)
{
bookTitle = title;
}
private void setBPages(int pages)
{
numPages = pages;
}
private String getBTitle()
{
return bookTitle;
}
private int getBPages()
{
return numPages;
}
public void displayBookInfo()
{
System.out.println("The book's title is: " + bookTitle + ".");
System.out.println("The number of pages is: " + numPages + ".");
}
}
Вот мой код для Texbook.java:
public class Textbook extends Book
{
int gradeLevel;
public int getGLevel()
{
return gradeLevel;
}
public void setGLevel(int level)
{
gradeLevel = level;
}
}
Если я действительно правильно выполнил эти две части, как бы я реализовал это в файле DemoBook.java?
Буду признателен за любую помощь или руководство.
Вот мой код для файла DemoBook.java:
import java.util.Scanner;
public class DemoBook
{
public static void main(String[] args)
{
String BTitle;
int BPages;
int BLevel;
Book b = new Book();
Textbook t = new Textbook();
Book bt = new Textbook();
Scanner input = new Scanner(System.in);
System.out.println("Please enter the title of your book: ");
BTitle = input.nextLine();
System.out.println("Please enter the number of pages: ");
BPages = input.nextInt();
System.out.println("Please enter the grade level: ");
BLevel = input.nextInt();
b.setBTitle(BTitle);
b.setBPages(BPages);
t.setGLevel(BLevel);
b.displayBookInfo();
}
}
Я изменил переменные на приватные, и это ошибка компилятора, которую я получаю:
DemoBook.java:33: error: setBTitle(String) has private access in Book
b.setBTitle(BTitle);
^
DemoBook.java:34: error: setBPages(int) has private access in Book
b.setBPages(BPages);
^
2 errors
Я до сих пор не понимаю этого.Глава называется «Введение в наследование».