У меня есть базовый класс, который выглядит следующим образом:
class BaseClass{
//this is a base class
// I dont want to add any generic methods here as it is
//extended by tens of classes
}
Теперь два конкретных класса, расширяющих этот базовый класс
class Abc extends BaseClass{
//method
void letsGo(){
//this method is not there in base class
}
}
class Xyz extends BaseClass{
//method
void letsGo(){
//this method is not there in base class
}
}
Теперь мне нужна функция, которая должнапринимает объект класса Xyz или объект класса Abc с синтаксисом, подобным приведенному ниже
void run (BaseClass base){
base.letsGo() // I know it wont work
}
, и называет его как run(object of Abc)
или run(object of Xyz)
.
Как мне это реализовать.Я не хочу добавлять абстрактный метод в базовый класс, так как он расширен многими классами