1 / 12

Specialization and Inheritance

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.

Download Presentation

Specialization and Inheritance

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Chapter 8 Specialization and Inheritance

  2. 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

  3. 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)

  4. 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

  5. Protected Access • private fields are inaccessible to outside classes (including derived classes). • protected fields are accessible to derived classes, but not to outside classes.

  6. 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

  7. 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

  8. 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.

  9. 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

  10. 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

  11. 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

  12. Abstract Methods • Abstract methods are not implemented. • Derived classes must provide method implementation.

More Related