Cómo llamar a un método no anónimo de clase secundaria utilizando la referencia de objeto principal

Aquí está mi código que desea acceder al método de clase secundaria de AdapterVer1 getAdaptObj1 () (sin conversión de tipos) usando la referencia de objeto de AdapterVersion (clase principal)

abstract class AdapterVersion {

public abstract void getMObject();
public abstract void getCObject();

}

public class AdapterVer1 extends AdapterVersion {

@Override
public void getMObject() {
    System.out.println("AdapterVer1 Mont");

}

@Override
public void getCObject() {
    System.out.println("AdapterVer1 Conf");

}

public void getAdaptObj1() {

}

}

public class AdapterFactory {

public static void main(String []a){
    AdapterFactory adapterFactory= new AdapterFactory();
    AdapterVersion adpater = adapterFactory.getMyObject("ver1");
    adpater.getAdaptObj1();  // Unable to do that
            ((AdapterVer1)adpater).getAdaptObj1(); // Working but DONT WANT THIS

}

public AdapterVersion getMyObject(String version){
    if(version.equals("ver1")){
        return new AdapterVer1();
    }else{
        return new AdapterVer2(); // another declared class
    }
}

}

Respuestas a la pregunta(3)

Su respuesta a la pregunta