In your example, the use of polymorphism isn't incredibly helpful since you only have one subclass of FlyingMachine
. Polymorphism becomes helpful if you have multiple kinds of FlyingMachine
. Then you could have a method that accepts any kind of FlyingMachine
and uses its fly()
method. An example might be testMaxAltitude(FlyingMachine)
.
Another feature that is only available with polymorphism is the ability to have a List<FlyingMachine>
and use it to store Jet
, Kite
, or VerySmallPebbles
.
One of the best cases one can make for using polymorphism is the ability to refer to interfaces rather than implementations.
For example, it's better to have a method that returns as List<FlyingMachine>
rather than an ArrayList<FlyingMachine>
. That way, I can change my implementation within the method to a LinkedList
or a Stack
without breaking any code that uses my method.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…