# OOP flash cards: Journeyman level

21 OOP terms at the Journeyman level, as flash cards.

Updated: October 12, 2026

- [Study these as flash cards](https://www.ask-codey.com/decks/oop/3/flash)
- [Play Memory with them](https://www.ask-codey.com/games/memory?category=oop&level=3)

## Terms in this deck

- [Abstract Class](https://www.ask-codey.com/glossary/abstract-class): A class that cannot be created directly, but must be inherited.
- [Abstract Method](https://www.ask-codey.com/glossary/abstract-method): A method signature without a method body that must be overridden.
- [Aggregation](https://www.ask-codey.com/glossary/aggregation-oop): A loose "has-a" relationship where the parts can exist without the whole.
- [Association](https://www.ask-codey.com/glossary/association-oop): Any relationship where one object knows about or uses another.
- [Big-O Notation](https://www.ask-codey.com/glossary/big-o-notation): Big-O Notation refers to how complex code is.
- [Cohesion](https://www.ask-codey.com/glossary/cohesion): How closely the things inside a class belong together; high cohesion is the goal.
- [Composition](https://www.ask-codey.com/glossary/composition-oop): Building an object out of other objects it owns ("has-a").
- [Composition over Inheritance](https://www.ask-codey.com/glossary/composition-over-inheritance): Advice to build behavior by combining objects instead of deep inheritance chains.
- [Coupling](https://www.ask-codey.com/glossary/coupling): How much one piece of code depends on another; loose coupling is the goal.
- [Dependency](https://www.ask-codey.com/glossary/dependency-oop): Something a class needs in order to do its job, like a database or an email sender.
- [Downcasting](https://www.ask-codey.com/glossary/downcasting): Treating a parent-typed variable as a specific child type; can fail, so check first.
- [Dynamic Dispatch](https://www.ask-codey.com/glossary/dynamic-dispatch-oop): Choosing which version of a method to run based on the object's real type, at run time.
- [Immutable Object](https://www.ask-codey.com/glossary/immutable-object): An object whose data cannot change after it is created.
- [Interface](https://www.ask-codey.com/glossary/interface-oop): A list of methods a class promises to provide, with no code of its own.
- [Is-a vs Has-a](https://www.ask-codey.com/glossary/is-a-vs-has-a): A quick test: "is-a" suggests inheritance, "has-a" suggests composition.
- [Mixin](https://www.ask-codey.com/glossary/mixin): A small reusable bundle of methods that can be added to unrelated classes.
- [Sealed / Final Class](https://www.ask-codey.com/glossary/sealed-final-class): A class that no other class is allowed to inherit from.
- [UML Class Diagram](https://www.ask-codey.com/glossary/uml-class-diagram): A diagram of classes as boxes, with lines showing how they relate.
- [Upcasting](https://www.ask-codey.com/glossary/upcasting): Treating an object as its parent type; always safe and automatic.
- [Value Object](https://www.ask-codey.com/glossary/value-object): An object defined only by its values; two with equal values are equal.
- [Virtual Method](https://www.ask-codey.com/glossary/virtual-method-oop): A method that child classes are allowed to override.

[Read them in the glossary](https://www.ask-codey.com/glossary/subjects/oop/journeyman)

Source: https://www.ask-codey.com/decks/oop/journeyman
