120 likes | 225 Views
Chapter 8. Specialization and Inheritance. Specialization. Specialized classes inherit the properties and methods of the parent or base class. A dog is a mammal Hair Live birth A car is a vehicle Wheels Engine Transports people A Button is a Control. Inheritance.
E N D
Chapter 8 Specialization and Inheritance
Specialization • Specialized classes inherit the properties and methods of the parent or base class. • A dog is a mammal • Hair • Live birth • A car is a vehicle • Wheels • Engine • Transports people • A Buttonis a Control
Inheritance • Specialization is implemented in Java through inheritance. The extends keyword is used to implement this relationship between classes. • class Dog extends (specializes) Mammal • Mammal is the base class (superclass) • Dog is the derived class (subclass)
Code Reuse with Inheritance • Inheritance permits easy reuse of existing code. • A DeadBall class can be derived from a Ball class. • Do not have to recode Ball characteristics in DeadBall class
Protected Access • private fields are inaccessible to outside classes (including derived classes). • protected fields are accessible to derived classes, but not to outside classes.
Using super • The super keyword invokes the base class’s constructor • Must be called from constructor of derived class • Must be first statement within constructor
More Rules for Using super • Call must match the signature of a valid signature in the base class • Implicitly called in the constructor if omitted, so the base class must have a default constructor • If derived class does not define a constructor, the compiler provides one and calls super automatically
Polymorphism • An object can take many forms. • Method overloading is one type of polymorphism. • Object polymorphism treats specialized objects as if they are instances of a more general type.
Object Polymorphism • A method expecting a Car object can only accept Car objects • A method expecting Vehicle objects can accept any object derived from the Vehicle class • Car • Truck • Bus
Factoring to the Base Class • Factor common characteristics of multiple classes up into a base class. • HWall and VWall classes have similar characteristics and methods. • Factor commonalities to a Wall class • Override some methods to specialize the HWall and VWall classes
Abstract Base Classes • The classes describe what all derived classes have in common. • Not instantiated (causes an exception) • Use the abstract keyword when defining abstract base classes and methods
Abstract Methods • Abstract methods are not implemented. • Derived classes must provide method implementation.