Ниже приведена логика ниже: все три класса AppleLeaf, MangoLeaf и BananaLeaf расширяются. Класс листа. У меня есть метод, который принимает только листовой объект. Он должен перенаправить меня к приведенным ниже методам на основе типа класса. Но я получаю ошибку, как, «Метод handleLeaf (AppleLeaf) в типе главного не применяется для аргументов (листья)»Чтобы перегрузить метод, принимающий базовый класс и направляющий реализацию метода расширяющихся классов
public void main(String args[]){
for (Leaf leaf : leafList) {
handleLeaf(leaf);
}
}
private void handleLeaf(AppleLeaf node) {
String colour = leaf.getColour();
System.print.out(colour);
}
private void handleLeaf(MangoLeaf mLeaf) {
Int veins = mLeaf.getVeinCount;
System.print.out(veins);
}
private void handleLeaf(BananaLeaf bLeaf) {
Boolean withered = bLeaf.getTexture();
}
Почему бы подкласс не обработать свой собственный метод handleLeaf вместо того, чтобы полагаться на суперкласс, чтобы знать все его дочерние типы? –