This is a list of terms found in object-oriented programming.

A Abstract class Accessibility Abstract method Abstraction (computer science) Access control Access modifiers Accessor method Adapter pattern Aspect-oriented

B Base class Boxing Bridge pattern Builder pattern

C Cast Chain-of-responsibility pattern Class Class hierarchy Class method Class object Class variable Cohesion Collection class Composition Constructor Container Contravariance Copy constructor Coupling Covariance

D Data-driven design Data hiding Default constructor Deep copy Delegation Dependency injection Destructor Dispatch table Dynamic binding Dynamic dispatch Dynamically typed language

E Early binding Eigenclass Encapsulation (computer programming) Exception handling Extension

F Facade - pattern Factory method pattern Factory object Factory pattern Field Finalizer First-class function Fragile base class Function composition

G Generic programming God object

H Heap-based memory allocation Helper class Hybrid language

I Immutable object (also called immutable value) Information hiding Inheritance Initialize Inline function Inner class Instance (computer science) Instance method Instance variable (also called data member) Interaction diagram Interface Inversion of control (IoC) Iterator

L Late binding Liskov substitution principle

M Member accessibility Members, any contents of a class: Attributes, Methods, and Inner classes Message passing Metaclass Metaprogramming Method (computer programming) Mixin Mock object Mock trainwreck Model–view–controller (MVC) Modular programming Multiple dispatch Multiple inheritance Multitier architecture Mutable variable Mutator method

N Name mangling Namespace Native method Nested class

O Object (computer science) Object type (see Boxing) OOPSLA – annual conference on Object-Oriented Programming, Systems, Languages, and Applications Open/closed principle Orthogonality Overload

P Package Parametric overloading Parameterized classes Parnas's principles Partial class Patterns Policy-based design Polymorphic Primitive data type , a way of encapsulation in object-oriented programming Programming paradigm , a way of encapsulation in object-oriented programming Protocol Prototype pattern Prototype-based programming , a way of encapsulation in object-oriented programming Pure polymorphism Pure virtual function (also called pure virtual method)

R Rapid application development (sometimes Rapid prototyping) Recursion Refinement Reflective programming (reflection) Responsibility-driven design Reverse polymorphism Run-time type information

S Scope Shallow copy, in contrast to deep copy Single responsibility principle Singleton pattern Singly rooted hierarchy Slicing Specification class, a class implementing abstract class Stack-based memory allocation Static method Static typing, in contrast to dynamic typing Strong and weak typing Subclass (also called child class or derived class) Subclass coupling SOLID Substitutability, principle of Subtype Superclass (also called parent class or base class)

T Template method pattern Test-driven development Tiers Trait Type Type conversion (also called typecasting) Type variance

V Virtual class Virtual function (also called virtual method) Virtual function pointer (also called virtual method pointer) Virtual inheritance (Object Oriented Programming) Virtual method table (also called vtable, virtual function table or virtual method table) Viscosity (programming) Void type

W Weak reference

Y Yo-yo problem