У меня есть запрос: мы можем получить доступ ко всем методам из класса ребенка с помощью вниз литья рассмотреть следующий код Базовый класс:Как получить доступ ко всем дочерним методам с использованием одного объекта?
public class BaseClass {
public void method() {
System.out.println("Base class");
}
}
ChildOne:
public class ChildOne extends BaseClass {
@Override
public void method() {
System.out.println("inside ChildOne");
}
}
ChildTwo:
public class ChildTwo extends BaseClass {
@Override
public void method() {
System.out.println("inside ChildTwo");
}
}
И класс клиента
try {
List l = new ArrayList();
l.add(new BaseClass());
l.add(new ChildOne());
l.add(new ChildTwo());
for (Object o : l) {
BaseClass bc = (BaseClass) Class.forName(o.getClass().getName().toString()).newInstance();
bc.method();
}
} catch (Exception e) {
}
outPut :
Base class
inside ChildOne
inside ChildTwo
теперь вопрос, что если
public abstract class BaseClass {
public abstract void method();
}
как мы не можем создать объект либо интерфейс или абстрактного класса. В приведенном выше коде я могу получить доступ ко всем методам из всех классов. Считаем, что у нас есть интерфейс с именем BaseClass
с определением метода, поскольку я реализую этот интерфейс во многих классах. Вопрос заключается в том, как я могу получить доступ ко всем методам без создания конкретного экземпляра каждого класса. Я хочу сделать это в одном цикле, но наследование не позволит нам Как это сделать?
здесь BaseClass является ** ** абстрактного класса и Метод ** abstract ** тоже – emotionlessbananas
@holidayCoder, да, но список будет содержать завершенные реализации 'BaseClass', которые реализуют все абстрактные методы от родителя. – Andrew
получил его, спасибо за помощь – emotionlessbananas