@ShinAkuma

Thanks,
now I see the point of doing this 
Car myCar = new Acura();

with myCar I can only call methods of interface that have their definition in the Acura class.

While with 
Acura myCar=new Acura() , I can call all methods of Acura class.

If I want to use acura car in some other program, I don't need to access the extra methods that the programmer might have used to make his job easy in the Acura class, I just need the basic functions of the Acura car that are defined through Car interface.
am I right ?