hfooad chapter 5 interlude
Post on 13-Jan-2016
40 Views
Preview:
DESCRIPTION
TRANSCRIPT
HFOOAD Chapter 5 Interlude
OO Catastrophe!
2
Interface
‣ Defines behavior
‣ Contract
‣ Cannot be instantiated
‣ A class can implement multiple interfaces
‣ In languages that support interfaces
Abstract class
‣ Defines behavior
‣ Can have implementation code
‣ Cannot be instantiated
‣ A class can inherit from a single abstract class
‣ Unless the language supports multiple inheritance
3
Two possible answers
4
How do I know when to use an interface and when to use an abstract class?
If (almost) all classes implementing the behavior would have the same code, then you can use an abstract class to implement it.
Avoid repeating code with abstract classes
Program to interfaces
5
6
Isn’t encapsulation just about hiding implementation?
ENCAPSULATION
Solution 1
7
Solution 2
8
9
10
11
Manage changeManage changeManage change…
Final Catastrophe challenge
12
Our solution
13
top related