1 / 18

What is Inheritance ?

What is Inheritance ?. A form of software reuse Create new class from existing class Absorb existing class’ data and behaviors Enhance with new or modified capabilities Used to eliminate redundant code Example Circle class inherits from Shape class Circle extends Shape.

aiko
Download Presentation

What is 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. What is Inheritance? • A form of software reuse • Create new class from existing class • Absorb existing class’ data and behaviors • Enhance with new or modified capabilities • Used to eliminate redundant code • Example • Circle class inherits from Shape class • Circle extends Shape

  2. Subclass and Superclass • Subclass extends superclass • Subclass • Also called child class or derived class • More specialized group of objects • Inherits data and behaviors from superclass • Can add or modify behaviors (methods) • Superclass • Also called parent class or base class • Typically represents larger group of objects • Supplies data and behaviors to subclass • Direct and indirect • Single and multiple inheritance

  3. The Object class • Top of the Java class hierarchy • Located in package java.lang • Class from which every other Java class inherits • A class implicitly extends Object if no other class is specified • .toString(), .clone(), .equals() equals() compares addresses, not the contents of objects

  4. “is-a” vs. “has-a” relationships • “is-a” • Represents inheritance • subclass object is an example of the superclass object • Example: a Car is a Vehicle • Car is subclass; Vehicle is superclass • Keywords: extends, implements • “has-a” • Represents composition • Object contains one or more objects of other classes as members • Example: Car has a Steering Wheel

  5. Composition • Dog “has-a” owner, mother, father, leash… public class Dog{ private String name; private int age; private Person owner; private Dog mother, father; private Leash dogLeash;}

  6. Inheritance • Dog extends (“is-a”) Animal Animal Animal’s Stuff Dog Animal’s Stuff Dog’s Stuff

  7. public class Dog extends Animal { public static void main (String[] args) { Dog d = new Dog(); d.setLegs(4); System.out.println ("A dog has " + d.getLegs() + " legs"); System.out.println ("A dog says " + d.noise()); } public String noise() { return "WOOF!"; } } public class Animal{ private int numLegs; public int getLegs() { return numLegs; } public void setLegs(int legs) { numLegs = legs; } public String noise() { return “?”; }}

  8. Inheritance Examples

  9. CommunityMember Employee Student Alumnus Faculty Staff Administrator Teacher An Inheritance (Class) Hierarchy Fig. 9.2 Inheritance hierarchy for university CommunityMembers.

  10. Draw an Inheritance Hierarchy for these classes: TriangleSphere TwoDimensionalShape ShapePyramidSquareThreeDimensionalShapeCubeCircleSphere

  11. Try one more! WalkingBirdOwlOstrichParrotBirdFlyingBirdChickenTalkingParrot

  12. Strategy • Design classes for objects • Identify characteristics classes have in common • Abstraction: focus on commonalities among objects in a system • Design superclasses to store common characteristics

  13. Bird call: ?color:?food:?movement:? FlyingBird call: ?color:?food:?movement:fly WalkingBird call: ?color:?food:?movement:walk Parrot call: Squawkcolor:?food: fruit Owl call: hoocolor: brownfood:mice Chicken call: cluckcolor: whitefood: bugs Ostrich call: neek-neekcolor: brownfood: grass TalkingParrot. . .

  14. protected Members • Variables or methods available only to derived classes • Intermediate level of protection between public and private • Accessible to • superclass members • subclass members • class members in the same package • Use super. to access a superclass method that has been overridden by a subclass method. • Don’t use protected instance variables! • “Fragile” software can “break” if superclass changes

  15. protected Members ClassC ClassA.m1()ClassA.m3() ClassA public m1()private m2()protected m3() ClassB ClassA.m1() is-a has-a

  16. Constructors in Subclasses • Constructors are not inherited! • Chain of constructor calls • subclass constructor invokes superclass constructor • Implicitly or explicitly • To call explicitly, use super() • Superclass constructor call must be first statement in subclass constructor • Object constructor is always fired last • Example: Student extends Person

  17. Software Engineering with Inheritance • Customizing existing software • Inherit from existing classes • Include additional members • Redefine superclass members • No direct access to superclass source code • Independent software vendors (ISVs) • Develop proprietary code for sale/license • Users derive new classes • Without accessing ISV proprietary source code

  18. Quiz Private/Static/Constructor • _________ methods are not inherited. • The _____ class is at the top of the Java hierarchy. • The _____ keyword is used in Java to represent inheritance. • A Java class _____ inherit from more than one class. • A variable or method that is available only to derived classes is called a____________. Object extends cannot protected member

More Related