Why do we use interfaces? How do they apply to the SOLID principles of Liskov Substitution, Interface Segregation, and Dependency Inversion? This video is an overview; a code example follows in a separate video.
Source code is freely available on GitHub at https://github.com/discospiff/Vehicles2022mvn