- Abstract Class - A class which is not fully implemented so must be extended by a concrete class
- Abstraction
- Aggregation - HAS-A relationship. Very similar to composition except it has a relationship where a child can independently exist without the parent
- Algorithm - A set of instructions for performing a task
- Class -
- Client - A particular piece of code using another particular piece of code
Compile time - When the program compiles
Composition - HAS-A relationship. Combining simple parts together to form something else by having instances of a class within an instance of another class. It has a relationship where a child cannot independently exist without the parent.
Concrete Class - A class which has all implementations of its methods, so you are able to create an object of its class with new
Delegation - An object passing its responsibility to another object through a HAS-A relationship.
Double Dispatch -
Encapsulation -
Flexibility - Decoupled code that is reusable and is easy to implement unexpected requirements, opposite of Rigidity
Fragility - Code that breaks in somewhere by changing something in a completely different place
Hollywood Principle - “Don't call us, we'll call you”. Methods are called in the superclass instead of a subclass calling methods in the superclass.
Inheritance - IS-A relationship.
Instantiation - Creating a real instance of a class
Interface
An interface can refer to the keyword interface in Java which defines expected behavior for a concrete class to have. When a concrete class implements an interface it is required to implement all the methods defined in that interface.
An interface could also mean a concrete class implementing a method from a super type class or interface.
Lazy Initialization - Delaying the creation of an object until it is actually needed
Object -
Polymorphism -
Reflection
Rigidity - Code that is hard to change because it affects many different parts of the system
Run-Time - While the program is running
Subclass - a child class which extends/inherits from a super/base class/parent class