From the course: Programming Foundations: Design Patterns
Unlock the full course today
Join today to access over 22,500 courses taught by industry experts or purchase this course individually.
Limitations of inheritance
From the course: Programming Foundations: Design Patterns
Limitations of inheritance
- [Instructor] What we really need at this point is an example to demonstrate the problems with inheritance, so let's take a look at a class design for a duck simulator. Let's say we want to design a duck simulator. To do that we need a set of Duck classes. It would be natural to think that you could start with a Duck superclass. You might give the superclass a quack method and a swim method because those are the things that you'd guess all ducks are going to want to do. Let's also give it a display method. But we'll keep that abstract meaning each subclass will need to implement it because each duck will want to implement its own unique appearance. Now because display is abstract, that makes our duck class abstract too meaning that we cannot instantiate a duck directly. To create a duck, we need some concrete classes. Let's add a concrete class MallardDuck and implement its display method so it looks like a mallard. And we'll also add a redheaded duck and display its display method…
Practice while you learn with exercise files
Download the files the instructor uses to teach the course. Follow along and learn by watching, listening and practicing.
Contents
-
-
-
-
Revisiting inheritance1m 30s
-
(Locked)
Limitations of inheritance4m 19s
-
(Locked)
Trying interfaces2m 28s
-
(Locked)
Get inspiration from design principles3m 37s
-
(Locked)
Programming to an interface1m 32s
-
(Locked)
Applying the principles4m 36s
-
(Locked)
Exploring the strategy pattern1m 59s
-
(Locked)
Why HAS-A is better than IS-A2m 4s
-
(Locked)
Challenge: The Strategy pattern2m
-
(Locked)
Solution: The Strategy pattern46s
-
-
-
-
-
-
-