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
Bridge pattern
Builder pattern
Base class
C
Cast
Chain-of-responsibility pattern
Class
Class hierarchy
Class method
Class object
Class variable
Cohesion
Collection class
Composition
Constructor
Container (abstract data type) 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) European Conference on Object-Oriented 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 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 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 Reflection Responsibility-driven design Reverse polymorphism Run-time type information
S
Scope
Shallow copy, as opposed 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
Statically typed language, as opposed to Dynamically typed language
Strongly-typed programming language
Subclass (also called child class or derived class) Subclass coupling SOLID Substitutability, principle of Subtype Superclass (also called parent class or base class)
T
Tiers
Template method pattern
Test-driven development
Trait
Type
Type conversion (also called typecasting)
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