8. Inheritance “Is-a” Relationship. Topics Creating Subclasses Overriding Methods Class Hierarchies Abstract Class Inheritance and GUIs The Timer Class.

Slides:



Advertisements
Similar presentations
Class Hierarchy (Inheritance)
Advertisements

Chapter 8 Inheritance. © 2004 Pearson Addison-Wesley. All rights reserved8-2 Inheritance Inheritance is a fundamental object-oriented design technique.
CS 211 Inheritance AAA.
Chapter 8 Inheritance 5 TH EDITION Lewis & Loftus java Software Solutions Foundations of Program Design © 2007 Pearson Addison-Wesley. All rights reserved.
Chapter 8 Inheritance Part 2. © 2004 Pearson Addison-Wesley. All rights reserved8-2 Outline Creating Subclasses Overriding Methods Class Hierarchies Inheritance.
Inheritance Inheritance Reserved word protected Reserved word super
Inheritance Polymorphism Briana B. Morrison CSE 1302C Spring 2010.
9. Inheritance 9.1 Subclasses 9.2 Polymorphism 9.3 Abstract Classes 9.4 Modifiers and Access 9.6 Object-Oriented Design with Use Cases and Scenarios.
Inheritance. Extending Classes It’s possible to create a class by using another as a starting point  i.e. Start with the original class then add methods,
1 Inheritance Reserved word protected Reserved word super Overriding methods Class Hierarchies Reading for this lecture: L&L 8.1 – 8.5.
Inheritance. 2 Inheritance allows a software developer to derive a new class from an existing one The existing class is called the parent class or superclass.
INF 523Q Chapter 7: Inheritance. 2 Inheritance  Another fundamental object-oriented technique is called inheritance, which enhances software design and.
CS 106 Introduction to Computer Science I 04 / 16 / 2010 Instructor: Michael Eckmann.
Aalborg Media Lab 23-Jun-15 Inheritance Lecture 10 Chapter 8.
Unit 011 Inheritance Recall What Inheritance is About The extends Keyword The Object Class Overriding versus Overloading What is Actually Inherited? Single.
Chapter Day 21. © 2007 Pearson Addison-Wesley. All rights reserved7-2 Agenda Day 20 Problem set 4 Posted  10 problems from chapters 7 & 8  Due Nov 21.
Chapter 8 Inheritance. © 2004 Pearson Addison-Wesley. All rights reserved8-2 Inheritance Inheritance is a fundamental object-oriented design technique.
Inheritance. © 2004 Pearson Addison-Wesley. All rights reserved 8-2 Inheritance Inheritance is a fundamental object-oriented design technique used to.
Chapter 10: Inheritance 1. Inheritance  Inheritance allows a software developer to derive a new class from an existing one  The existing class is called.
© 2004 Pearson Addison-Wesley. All rights reserved8-1 Chapter 8 : Inheritance Intermediate Java Programming Summer 2007.
“is a”  Define a new class DerivedClass which extends BaseClass class BaseClass { // class contents } class DerivedClass : BaseClass { // class.
© 2006 Pearson Education Chapter 7: Inheritance Presentation slides for Java Software Solutions for AP* Computer Science A 2nd Edition by John Lewis, William.
Sadegh Aliakbary Sharif University of Technology Fall 2010.
Chapter 7: Inheritance Presentation slides for Java Software Solutions for AP* Computer Science by John Lewis, William Loftus, and Cara Cocking Java Software.
CSE 501N Fall ‘09 14: Inheritance 20 October 2009 Nick Leidenfrost.
Chapter 8 Inheritance Part 2. © 2004 Pearson Addison-Wesley. All rights reserved2/23 Outline Creating Subclasses Overriding Methods Class Hierarchies.
COS 312 DAY 13 Tony Gauvin. Ch 1 -2 Agenda Questions? First Progress Over due – Next progress report is March 26 Assignment 4 Posted – Chap 6 & 7 – Due.
Outline Creating Subclasses Overriding Methods Class Hierarchies Visibility Designing for Inheritance Inheritance and GUIs The Timer Class Copyright ©
Chapter 8 Inheritance Part 1. © 2004 Pearson Addison-Wesley. All rights reserved8-2 Inheritance Inheritance is a fundamental object-oriented design technique.
Copyright © 2012 Pearson Education, Inc. Chapter 9 Inheritance Java Software Solutions Foundations of Program Design Seventh Edition John Lewis William.
Copyright © 2009 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Java Software Solutions Foundations of Program Design Sixth Edition by Lewis.
Inheritance. Inheritance is a fundamental object-oriented design technique used to create and organize reusable classes Chapter 8 focuses on: deriving.
Inheritance Inheritance allows a programmer to derive a new class from an existing one The existing class is called the super class, or parent class,
Inheritance Objectives: Creating new classes from existing classes The protected modifier Creating class hierarchies Abstract classes Indirect visibility.
Chapter 8 Specialization aka Inheritance. 2 Inheritance  Review of class relationships  Uses – One class uses the services of another class, either.
Chapter 8 Inheritance. 2  Review of class relationships  Uses – One class uses the services of another class, either by making objects of that class.
1 Inheritance  Inheritance allows a software developer to derive a new class from an existing one  The existing class is called the parent class, or.
Object Oriented Concepts Recap OOP. The four Pillars of OOP Abstraction Encapsulation Inheritance Polymorphism.
Coming up: Inheritance
© 2004 Pearson Addison-Wesley. All rights reserved April 14, 2006 Polymorphism ComS 207: Programming I (in Java) Iowa State University, SPRING 2006 Instructor:
1 Inheritance Reserved word protected Reserved word super Overriding methods Class Hierarchies Reading for this lecture: L&L 9.1 – 9.4.
Inheritance in Java. Access Specifiers private keywordprivate keyword –Used for most instance variables –private variables and methods are accessible.
November 27, 2001Lecture 231  Previous Lecture: Parameter passing Method overloading  Today’s Lecture: Introduction to inheritance Class diagrams and.
Chapter 8 Inheritance 5 TH EDITION Lewis & Loftus java Software Solutions Foundations of Program Design © 2007 Pearson Addison-Wesley. All rights reserved.
Java Software Solutions Lewis and Loftus Chapter 8 Copyright 1997 by John Lewis and William Loftus. All rights reserved. 1 Inheritance -- Introduction.
Copyright © 2009 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Java Software Solutions Foundations of Program Design Sixth Edition by Lewis.
© 2004 Pearson Addison-Wesley. All rights reserved November 12, 2007 Inheritance ComS 207: Programming I (in Java) Iowa State University, FALL 2007 Instructor:
© 2004 Pearson Addison-Wesley. All rights reserved April 10, 2006 Inheritance (part 2) ComS 207: Programming I (in Java) Iowa State University, SPRING.
Copyright © 2009 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Outline Creating Subclasses Overriding Methods Class Hierarchies Inheritance.
Inheritance Chapter 8 Instructor: Scott Kristjanson CMPT 125/125 SFU Burnaby, Fall 2013.
© 2004 Pearson Addison-Wesley. All rights reserved November 14, 2007 Inheritance (part 2) ComS 207: Programming I (in Java) Iowa State University, FALL.
Java Programming: Guided Learning with Early Objects Chapter 9 Inheritance and Polymorphism.
Polymorphism November 27, 2006 ComS 207: Programming I (in Java)
Lecture 12 Inheritance.
Chapter 8 Inheritance.
COS 312 DAY 15 Tony Gauvin.
03/10/14 Inheritance-2.
Inheritance Inheritance allows a programmer to derive a new class from an existing one The existing class is called the super class, or parent class,
03/10/14 Chapter 9 Inheritance.
Chapter 7: Inheritance Java Software Solutions
Inheritance November 10, 2006 ComS 207: Programming I (in Java)
Inheritance April 7, 2006 ComS 207: Programming I (in Java)
The super Reference Constructors cannot be used in child classes, even though they have public visibility Yet we often want to use the parent's constructor.
Abstract Classes An abstract class is a kind of ghost class. It can pass along methods and variables but it can’t ever be instantiated itself. We can.
Overriding Methods & Class Hierarchies
Chapter 8 Inheritance.
Chapter 8 Inheritance Part 2.
Presentation transcript:

8. Inheritance “Is-a” Relationship

Topics Creating Subclasses Overriding Methods Class Hierarchies Abstract Class Inheritance and GUIs The Timer Class

Inheritance Inheritance allows developer to derive a new class from an existing one Inheritance allows developer to derive a new class from an existing one The existing class is called the parent class, or superclass, or base class The existing class is called the parent class, or superclass, or base class The derived class is called the child class or subclass The derived class is called the child class or subclass The child inherits characteristics of the parent The child inherits characteristics of the parent That is, the child class inherits the methods and data defined by the parent class That is, the child class inherits the methods and data defined by the parent class

UML Diagram UML Diagram for Parent-Child class relationship UML Diagram for Parent-Child class relationship Is-A Relationship Child is a more specific version of the parent Is-A Relationship Child is a more specific version of the parent Vehicle Car

Inheritance A derived class can be tailored to specific needs by A derived class can be tailored to specific needs by Adding new methods Adding new methods Adding new data Adding new data Takes advantage of design, implementation and testing result of the parent class Takes advantage of design, implementation and testing result of the parent class Promotes reusability of code, modifiability of program. Promotes reusability of code, modifiability of program.

Inheritance Use reserved word extends to establish inheritance. Use reserved word extends to establish inheritance. Words.java (page 442) Words.java (page 442) Words.java Book.java (page 443) Book.java (page 443) Book.java Dictionary.java (page 444) Dictionary.java (page 444) Dictionary.java Car extends Vehicle { // class contents // class contents}

Visibility Modifiers Visibility modifiers affect the way that class members can be used in a child class Visibility modifiers affect the way that class members can be used in a child class Private variables and methods cannot be referenced by name in a child class Private variables and methods cannot be referenced by name in a child class Public variables and methods are visible to all classes -- but public variables violate the principle of encapsulation Public variables and methods are visible to all classes -- but public variables violate the principle of encapsulation Protected variables and methods are visible to child classes, but not to others. Protected variables and methods are visible to child classes, but not to others.

Inheritance Protected methods or data in the parent class are inherited by a child class. Protected methods or data in the parent class are inherited by a child class. They are not visible to other classes, even in the same package. They are not visible to other classes, even in the same package.

super() Reference Constructors are not inherited. Constructors are not inherited. To make use of a constructor in the parent class—e.g., to use its initialization code— use super(), which is same as invoking the parent’s constructor. To make use of a constructor in the parent class—e.g., to use its initialization code— use super(), which is same as invoking the parent’s constructor. Constructor in a child class should call super() as the first statement. Constructor in a child class should call super() as the first statement. Words2.java (page 447) Words2.java (page 447) Words2.java Book2.java (page 448) Book2.java (page 448) Book2.java Dictionary2.java (page 449) Dictionary2.java (page 449) Dictionary2.java

Topics Creating Subclasses Overriding Methods Class Hierarchies Abstract Class Inheritance and GUIs The Timer Class

Overriding a Method An inherited method can be overridden—so that it has the same signature by completely different body definition. An inherited method can be overridden—so that it has the same signature by completely different body definition. If such a method has a different signature, e.g., more parameters, then the method is a new (overloaded) method. If such a method has a different signature, e.g., more parameters, then the method is a new (overloaded) method. Messages.java (page 452) Messages.java (page 452) Messages.java Thought.java (page 453) Thought.java (page 453) Thought.java Advice.java (page 454) Advice.java (page 454) Advice.java

Overloading Vs Overriding Overloading refers to multiple methods with the same name in the same class, but with different signatures Overloading refers to multiple methods with the same name in the same class, but with different signatures Overriding refers to two methods, one in a parent class and one in a child class, that have the same signature Overriding refers to two methods, one in a parent class and one in a child class, that have the same signature Overloading lets you define a similar operation in different ways for different parameters Overloading lets you define a similar operation in different ways for different parameters Overriding lets you define a similar operation in different ways for different object types Overriding lets you define a similar operation in different ways for different object types

Topics Creating Subclasses Overriding Methods Class Hierarchies Abstract Class Inheritance and GUIs The Timer Class

Inheritance Hierarchy Business KMartMacys ServiceBusiness Kinkos RetailBusiness A child class can be the parent class of another subclass.

Inheritance Hierarchy Two children of the same parent are called siblings Two children of the same parent are called siblings Common features should be put as high in the hierarchy as is reasonable Common features should be put as high in the hierarchy as is reasonable An inherited member is passed continually down the line An inherited member is passed continually down the line Therefore, a child class inherits from all its ancestor classes Therefore, a child class inherits from all its ancestor classes There is no single class hierarchy that is appropriate for all situations There is no single class hierarchy that is appropriate for all situations

The Object Class A class called Object is defined in the java.lang package of the Java standard class library A class called Object is defined in the java.lang package of the Java standard class library All classes are derived from the Object class All classes are derived from the Object class If a class is not explicitly defined to be the child of an existing class, it is assumed to be the child of the Object class If a class is not explicitly defined to be the child of an existing class, it is assumed to be the child of the Object class Therefore, the Object class is the ultimate root of all class hierarchies Therefore, the Object class is the ultimate root of all class hierarchies Java 1.5

The Object Class The Object class contains a few useful methods, which are inherited by all classes The Object class contains a few useful methods, which are inherited by all classes For example, the toString method is defined in the Object class For example, the toString method is defined in the Object class Every time we define the toString method, we are actually overriding an inherited definition Every time we define the toString method, we are actually overriding an inherited definition The toString method in the Object class is defined to return a string that contains the name of the object’s class along with some other information The toString method in the Object class is defined to return a string that contains the name of the object’s class along with some other information

Topics Creating Subclasses Overriding Methods Class Hierarchies Abstract Class Inheritance and GUIs The Timer Class

Abstract Class An abstract class is a placeholder in a class hierarchy that represents a generic concept An abstract class is a placeholder in a class hierarchy that represents a generic concept An abstract class cannot be instantiated An abstract class cannot be instantiated We use the modifier abstract on the class header to declare a class as abstract: We use the modifier abstract on the class header to declare a class as abstract:

Abstract Class public abstract class Product { // contents // contents}

Abstract Class An abstract class often contains abstract methods with no definitions (like an interface) An abstract class often contains abstract methods with no definitions (like an interface) Unlike an interface, the abstract modifier must be applied to each abstract method Unlike an interface, the abstract modifier must be applied to each abstract method Also, an abstract class typically contains non- abstract methods with full definitions Also, an abstract class typically contains non- abstract methods with full definitions A class declared as abstract does not have to contain abstract methods -- simply declaring it as abstract makes it so A class declared as abstract does not have to contain abstract methods -- simply declaring it as abstract makes it so

Abstract Class The child of an abstract class must override the abstract methods of the parent, or it too will be considered abstract The child of an abstract class must override the abstract methods of the parent, or it too will be considered abstract An abstract method cannot be defined as final or static An abstract method cannot be defined as final or static The use of abstract classes is an important element of software design – it allows us to establish common elements in a hierarchy that are too generic to instantiate The use of abstract classes is an important element of software design – it allows us to establish common elements in a hierarchy that are too generic to instantiate