object-oriented language: A language that provides features, such as user-defined classes and method syntax, that facilitate object-oriented programming.
object-oriented programming: A style of programming in which data and the operations that manipulate it are organized into classes and methods.
method: A function that is defined inside a class definition and is invoked on instances of that class.
subject: The object a method is invoked on.
operator overloading: Changing the behavior of an operator like + so it works with a userdefined type.
type-based dispatch: A programming pattern that checks the type of an operand and invokes different functions for different types.
polymorphic: Pertaining to a function that can work with more than one type.
information hiding: The principle that the interface provided by an object should not depend on its implementation, in particular the representation of its attributes.