# Duck type objects are chameleons that are defined more by their BEHAVIOUR than by their CLASS. This is how the technique gets it's name:

# If it walks like a duck, and quacks like a duck, then its class is immaterial - it's a duck.

# Duck typing is possible in Ruby, but not in, say, Java, because Ruby is dynamically typed and Java is statically typed. (Most) Static typed languages require the type of their variables and method parameters to be explicitly declared, whereas in dynamically typed languages, the type of the object does not have to be explicitly defined - you can put any value in any variable and pass any argument to any method, without further declaration. It is this very fact that allows duck typing to be possible.

# Because - If it walks like a duck, and quacks like a duck, then for all intents and purposes, we can treat it like a duck. So long as it acts like one, we don't need to worry about what it *actually* is.

# It's not what an object *is* that matters - it's what an object *does*.

# So if it walks like a duck, and talks like a duck - treat it like a duck!
