Я в основном ищу способ, чтобы изменить следующий исходный код с модификаторами и некоторыми дополнительными линиями в телах методов, поэтому она выводит следующее в моей консоли:Как контролировать наследование с помощью модификаторов?
1g
1hb
2f
1g
2hb
1hb
Сва упражнение для моих занятий в университете и я просто не могу обернуться вокруг него. Iam разрешено изменять тела метода кроме строк println, а также изменять модификаторы для методов. Как я должен это делать и в каком отношении здесь существуют модификаторы в отношении наследования? Как перегрузить методы для получения желаемого результата?
Это мой основной метод:
public class Poly {
public static void main(String args[]) {
Poly1 a = new Poly1();
a.g();
Poly2 b = new Poly2();
b.f();
}
}
и это мой первый класс:
public class Poly1 {
public void f() {
System.out.println("1f");
g();
}
private void g() {
System.out.println("1g");
h(10);
}
protected void h(int i) {
System.out.println("1hi");
}
void h(byte b) {
System.out.println("1hb");
}
}
и следующий мой второй класс:
public class Poly2 extends Poly1 {
protected void f() {
System.out.println("2f");
Poly1 c=new Poly1();
g();
h();
}
public void g() {
System.out.println("2g");
h(18);
}
public void h(int i) {
System.out.println("2hi");
}
public void h(byte b) {
System.out.println("2hb");
}
}
да, это было бы в основном моим решением. Я просто не могу заставить 2hb в строке 5 работать. Это как-то должно попасть туда между ними, но я просто не знаю, как это сделать? – ph1rone
super.g(); super.h ((байт) 10); – hasnae
Большое вам спасибо! Наконец я понял супер ... Приветствия! – ph1rone