Understanding Subtyping
The distinction between classes and interfaces is crucial in modern programming languages, with interfaces serving as true types. Subtyping allows for the extension of types, but changing the semantics of operations can lead to complications, especially in long-maintained systems. The evolution of APIs, such as Java's collection classes, highlights the importance of understanding subtyping while also being pragmatic about potential constraints.In this clip
From this podcast

Software Engineering Radio - the podcast for professional software developers
Episode 28: Type Systems
Related Questions
What is the main topic of the clip Understanding Subtyping from the episode Episode 28: Type Systems?
What is the main topic of the clip Understanding Type Systems from the episode Episode 28: Type Systems?
What is the main topic of the clip Abstract Data Types from the episode Episode 28: Type Systems?