У меня проблемы с этим Java Вопрос :
Рассмотрим следующие классы:
public class Computer extends Mineral {
public void b() {
System.out.println("Computer b");
super.b();
}
public void c() {
System.out.println("Computer c");
}
}
public class Mineral extends Vegetable {
public void b() {
System.out.println("Mineral b");
a();
}
}
public class Animal extends Mineral {
public void a() {
System.out.println("Animal a");
}
public void c() {
b();
System.out.println("Animal c");
}
}
public class Vegetable {
public void a() {
System.out.println("Vegetable a");
}
public void b() {
System.out.println("Vegetable b");
}
}
Предположим определены следующие переменные:
Vegetable var1 = new Computer();
Mineral var2 = new Animal();
Vegetable var3 = new Mineral();
Object var4 = new Mineral();
Укажите в каждой строке под выводом, полученным каждым показанным оператором. Если оператор выдает более одной строки вывода, укажите разрывы строк с косой чертой, как в / b / c, чтобы указать три строки вывода, после которых следует b, а затем c. Если оператор вызывает ошибку, напишите слово error, чтобы указать это.
Для выполнения
var1.b()
Я был озадачен выводом
Через тщательный анализ, мы должны заметить, что когда мы вызываем метод b () для минерала:
public void b() {
System.out.println("Mineral b");
a();
}
Мы также вызываем метод
a()
И, следовательно, используя диаграмму иерархии классов , можно вызвать метод
Vegetable.a()
источник