In должен инициализировать Dog
с Cat
экземпляром (или Stone
с SpecialStone
экземпляром):
Stone s = new SpecialStone();
Затем вы можете вызвать метод на вашем SpecialStone
(Это может работать, только если вы инициализируете родительский класс дочерним классом):
if (s instanceof SpecialStone) {
(SpecialStone)s.specialMethod();
}
Другим способом является использование полиморфизма:
public class Stone {
public void specialMethod() {
}
}
public class SpecialStone {
@Override
public void specialMethod() {
}
}
Но это добавит specialMethod
к каждому экземпляру Stone