If you know you will only use Bycicle's methods, then declare and initialize the variable as Bycicle:
Bycicle bike = new Bicycle();
If you want to change the class implementation but still use only Bycicle methods, then declare the variable as Bycicle and initialize it as the specific class implementation, in this case, MountainBike:
Bycicle bike = new MountainBike();
If you know you will use specific methods of the class implementation, then you have two choices:
Initialize as the class implementation and in the specific part you need to call a method from this class implementation, use downcasting:
((MountainBike)bike).mountainBikeMethod();
I don't recommend this approach since if you change how you initialize the class then you should be careful when changing these downcastings as well, otherwise you will get RuntimeException, specifically ClassCastException for downcasting to a wrong class.
Declare and initialize as the class implementation, then forget about using the super class type since that's not what you need:
MountainBike bike = new MountainBike();