- Inheritance using concrete classes.
- Inheritance by classes implementing interfaces.
- By subclasses overiding concrete clases implemementaion.
- By classes overriding interface methods and implementing differently per class.
- Child class extending from base abstract class
- Implementation of interfaces
- Using getters and setters for an entity