У меня предстоящий экзамен, и одно из практических заданий заключается в следующем:
Моя проблема с этим заданием - это имя двух личных переменных и курс.Частный означает, что они не могут быть перезаписаны подклассами, верно?Как я должен инициализировать эти переменные из подклассов?
Пока это мой код, но он не работает:
class Bachelor extends Student{
Bachelor (String n, String c){
name = n;
course = c;
}
void printlabel() {
System.out.println("%s\nBachelor %s",name, course);
}
}
class Master extends Student{
Master (String n, String c){
name = n;
course = c;
}
void printlabel() {
System.out.println("%s\nMaster %s",name, course);
}
}
public abstract class Student {
private String name;
private String course;
public Student (String n, String c) {
name = n;
course = c;
}
void printname() {
System.out.println(name);
}
void printcourse() {
System.out.println(course);
}
public static void main(String[] args) {
Bachelor rolf = new Bachelor("Rolf", "Informatics");
rolf.printname();
}
abstract void printlabel();
}
Подробное описание: Создать class Student
с двумя частнымипеременные объекта name
и course
.Затем создайте конструктор, который инициализирует эти переменные, методы printname()
и printcourse()
и метод astract printlabel()
.
Затем создайте два подкласса Bachelor
и Master
.Предполагается, что они имеют конструктор и перезаписывают абстрактный метод.
например,
Bachelor b = new Bachelor("James Bond", "Informatics");
b.printlabel();
Предполагается, что он возвращает имя, имя класса и курс.