Два разных типа параметров (литье объекта в тип)

Я хочу вызвать метод, но параметр может быть Button или ImageButton. Я вызываю метод два раза с разными типами параметров как Объекты.

В моем методе attributesOfButton я хочу назначить соответствующий тип кнопки, как в приведенном ниже коде.

private void memCheck() { ImageButton imageButtonCam; Button buttonCamCo; attributesOfButton(imageButtonCam); attributesOfButton(buttonCamCo); } private void attributesOfButton(Object button) { Object currentButton; if (button instanceof ImageButton) { currentButton = (ImageButton) button; } if (button instanceof Button ) { currentButton = (Button) button; } // do something with button like: if (Provider.getValue == 1) { currentButton.setEnabled(true); } } 

Но это не сработает. Если я, например, сделаю это:

 currentButton.setEnabled(true); 

я получил

Не удается разрешить метод setEnabled (boolean)

    Объект currentButton по-прежнему определяется как Object, поэтому вы не можете использовать что-либо еще, кроме методов Object, даже если вы знаете, что это подкласс. Вы должны иметь объект, определенный с помощью соответствующего класса:

     private void attributesOfButton(Object button) { if (button instanceof ImageButton) { ImageButton currentButton = (ImageButton) button; // do stuff for ImageButton } if (button instanceof Button ) { Button currentButton = (Button) button; // do stuff for Button } }