Sie sind auf Seite 1von 13

HFOOAD Chapter 5 Interlude

OO Catastrophe!

Two possible answers


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

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

ENCAPSULATION
Isnt encapsulation just about hiding implementation?

Solution 1

Solution 2

10

Manage change Manage change Manage change

11

Final Catastrophe challenge

12

Our solution

13

Das könnte Ihnen auch gefallen