A financial services company is developing a framework where different asset classes must be represented. A base `Asset` class is defined. `Stock` and `Bond` classes inherit from `Asset`. A `Portfolio` class is then created, which holds a collection of `Asset` objects. Which two primary OOP principles are demonstrated by the `Portfolio` class's relationship with the `Asset`, `Stock`, and `Bond` classes?