Object obj = new Horse("Zippo");
Here is the reference type is Object and hence you can only access members of object and not horse.
If you want to use a access a method/property of Horse,
you should simple use the horse reference type itself.
Look at it this way, the only reason
Java allows you have to have a base class refer to a sub class type is to make use of
polymorphism. Conceptually, a base class reference is used to access a property that is common to all subclasses and not a property pertaining to a particular sub class(here name belongs only to horse).
Common properties of several classes are identified and are put in a common class called the Base class. That is the idea behind inheritance.