7 Design subclasses right

 

This chapter covers

  • When to use function overriding and overloading
  • The Liskov Substitution Principle ensures proper subclasses
  • Designing classes and subclasses properly with “is-a” and “has-a” relationships
  • The Favor Composition over Inheritance Principle increases code flexibility
  • Factory classes also increase code flexibility and prevent hardcoding
  • Using Programming by Contract correctly when designing subclasses

As described in section 1.7, inheritance is one of the main concepts of object-oriented programming. When we create an application with class hierarchies of superclasses and subclasses, we must design the subclasses right to achieve a well-designed application.

7.1 When to use function overriding or overloading

7.1.1 Override superclass member functions to get subclass behavior

7.1.2 Overload functions that have similar or equivalent behaviors

7.2 The Liskov Substitution Principle and proper subclasses

7.3 Choosing the “is-a” and “has-a” relationships

7.4 Using a factory function with the Code to the Interface Principle

7.5 Programming by Contract with subclasses [OPTIONAL]

7.6 Summary

sitemap