09 Inheritance. 2 Contents Defining Inheritance Relationships of Inheritance Rules of Inheritance super and this references super() and this() methods.

Slides:



Advertisements
Similar presentations
Liang, Introduction to Java Programming, Fifth Edition, (c) 2005 Pearson Education, Inc. All rights reserved Chapter 8 Inheritance and.
Advertisements

OOP: Inheritance By: Lamiaa Said.
1 Chapter 6: Extending classes and Inheritance. 2 Basics of Inheritance One of the basic objectives of Inheritance is code reuse If you want to extend.
Object-Oriented Programming: Inheritance Deitel &Deitel Java SE 8.
1. 2 Introduction to Inheritance  Access Modifiers  Methods in Subclasses  Method Overriding  Converting Class Types  Why up-cast?  Why down-cast?
Liang, Introduction to Java Programming, Eighth Edition, (c) 2011 Pearson Education, Inc. All rights reserved Inheritance and Polymorphism.
Inheritance and Class Hierarchies Chapter 3. Chapter 3: Inheritance and Class Hierarchies2 Chapter Objectives To understand inheritance and how it facilitates.
CSCI 143 OOP – Inheritance 1. What is Inheritance? A form of software reuse Create a new class from an existing class – Absorb existing class data and.
Object-Orientated Design and Programming Unit 8: Inheritance and Polymorphism Jin Sa.
Aalborg Media Lab 23-Jun-15 Inheritance Lecture 10 Chapter 8.
Inheritance and Polymorphism Recitation 04/10/2009 CS 180 Department of Computer Science, Purdue University.
1 Inheritance and Polymorphism. 2 Motivations Suppose you will define classes to model circles, rectangles, and triangles. These classes have many common.
Unit 011 Inheritance Recall What Inheritance is About The extends Keyword The Object Class Overriding versus Overloading What is Actually Inherited? Single.
OOP in Java Fawzi Emad Chau-Wen Tseng Department of Computer Science University of Maryland, College Park.
Computer Science I Inheritance Professor Evan Korth New York University.
Vocabulary Key Terms polymorphism - Selecting a method among many methods that have the same name. subclass - A class that inherits variables and methods.
Inheritance Inheritance is the process of using features (both attributes and methods) from an existing class. The existing class is called the superclass.
Liang, Introduction to Java Programming, Tenth Edition, (c) 2013 Pearson Education, Inc. All rights reserved. 1 Chapter 11 Inheritance and Polymorphism.
“is a”  Define a new class DerivedClass which extends BaseClass class BaseClass { // class contents } class DerivedClass : BaseClass { // class.
Intro to OOP with Java, C. Thomas Wu
Programming in Java Unit 2. Class and variable declaration A class is best thought of as a template from which objects are created. You can create many.
Specialization and Inheritance Chapter 8. 8 Specialization Specialized classes inherit the properties and methods of the parent or base class. A dog is.
Inheritance. Inheritance Early programmers often wrote code very similar to existing code Example: A human resources system might handle different types.
Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All rights reserved. 1 Chapter 11 Inheritance and Polymorphism.
Inheritance and Polymorphism Daniel Liang, Introduction to Java Programming.
Inheritance Inheritance is the process of using features (both attributes and methods) from an existing class. The existing class is called the superclass.
Inheritance - Polymorphism ITI 1121 Nour El Kadri.
RIT Computer Science Dept. Goals l Inheritance l Modifiers: private, public, protected l Polymorphism.
Question of the Day  There are two escalators at each subway stop. One going up & one down.  Whenever an escalator needs to be fixed, they almost always.
Liang, Introduction to Java Programming, Seventh Edition, (c) 2009 Pearson Education, Inc. All rights reserved
Question of the Day  Thieves guild states it will sell to members: lock picking kits  $0.67 each 40’ rope  $2.12 each Wire cutters  $4.49 each How.
Problem of the Day  What is the smallest positive integer that cannot be defined in less than twenty-five syllables?
Inheritance and Access Control CS 162 (Summer 2009)
Question of the Day  Thieves guild states it will sell to members: lock picking kits  $0.67 each 40’ rope  $2.12 each Wire cutters  $4.49 each How.
Chapter 5 Objects and Classes Inheritance. Solution Assignments 3 & 4 Review in class…..
08 Encapsulation and Abstraction. 2 Contents Defining Abstraction Levels of Abstraction Class as Abstraction Defining a Java Class Instantiating a Class.
Liang, Introduction to Java Programming, Sixth Edition, (c) 2007 Pearson Education, Inc. All rights reserved Chapter 9 Inheritance and.
Object Oriented Programming
UMass Lowell Computer Science Java and Distributed Computing Prof. Karen Daniels Fall, 2000 Lecture 9 Java Fundamentals Objects/ClassesMethods Mon.
1 COSC2007 Data Structures II Chapter 9 Class Relationships.
Application development with Java Lecture 21. Inheritance Subclasses Overriding Object class.
COMP Inheritance Basics Yi Hong June 09, 2015.
Coming up: Inheritance
Encapsulation, Inheritance, Composition. Class Methods Can be either void or return Can have parameters or not Must be static Should be public Know how.
OOP: Inheritance. Inheritance A class can extend another class, inheriting all its data members and methods while redefining some of them and/or adding.
Question of the Day  There are two escalators at each subway stop. One going up & one down.  Whenever an escalator needs to be fixed, they almost always.
Inheritance and Class Hierarchies Chapter 3. Chapter 3: Inheritance and Class Hierarchies2 Chapter Objectives To understand inheritance and how it facilitates.
Inheritance and Class Hierarchies Chapter 3. Chapter Objectives  To understand inheritance and how it facilitates code reuse  To understand how Java.
Inheritance and Polymorphism. Superclass and Subclass Inheritance defines a relationship between objects that share characteristics. It is a mechanism.
Inheritance in Java. Access Specifiers private keywordprivate keyword –Used for most instance variables –private variables and methods are accessible.
Object Oriented Programming I ( ) Dr. Adel hamdan Part 03 (Week 4) Dr. Adel Hamdan Date Created: 7/10/2011.
1 Object-Oriented Programming Inheritance. 2 Superclasses and Subclasses Superclasses and Subclasses  Superclasses and subclasses Object of one class.
Inheritance ndex.html ndex.htmland “Java.
CS 112 Programming 2 Lecture 06 Inheritance & Polymorphism (1)
Java Inheritance 1/13/2015. Learning Objectives Understand how inheritance promotes software reusability Understand notions of superclasses and subclasses.
Terms and Rules II Professor Evan Korth New York University (All rights reserved)
COMPUTER SCIENCE & TECHNOLOGY DEGREE PROGRAMME FACULTY OF SCIENCE & TECHNOLOGY UNIVERSITY OF UVA WELLASSA ‏ Properties of Object Oriented Programming.
SUBCLASSES - JAVA. The Purpose of Subclasses Class Farm String getOwner() void setOwner(String s) int getSize() void setSize(int s) Class DairyFarm String.
Comp1004: Building Better Objects II Encapsulation and Constructors.
UMass Lowell Computer Science Java and Distributed Computing Prof. Karen Daniels Fall, 2000 Lecture 10 Java Fundamentals Objects/ClassesMethods.
Java Programming: Guided Learning with Early Objects Chapter 9 Inheritance and Polymorphism.
Object Oriented Programming. Constructors  Constructors are like special methods that are called implicitly as soon as an object is instantiated (i.e.
Inheritance and Polymorphism
ATS Application Programming: Java Programming
Encapsulation & Abstraction
Chapter 9 Inheritance and Polymorphism
Java Inheritance.
Chapter 11 Inheritance and Polymorphism Part 1
Java Inheritance.
Overloading Each method has a signature: its name together with the number and types of its parameters Methods Signatures String toString()
Presentation transcript:

09 Inheritance

2 Contents Defining Inheritance Relationships of Inheritance Rules of Inheritance super and this references super() and this() methods Constructor Chaining Casting

3 Objectives Define inheritance Identify relationships of inheritance Describe the rules of inheritance Describe the difference between this and super references Describe the difference between this() and super() methods Describe how to create constructors Describe the steps in constructor chaining Describe how to convert data types using casting

4 Defining Inheritance Inheritance is the ability to derive new classes from existing ones. A derived class ("subclass") inherits the instance variables and methods of the base class ("superclass"), and may add new instance variables and methods. Inheritance defines a hierarchical relationship among classes wherein one class shares the attributes and methods defined in one or more classes. Inheritance is a relationship among classes in which one class shares the structure and behavior of another. A subclass inherits from a superclass.

5 Relationships of Inheritance “is-a” relationship a subclass can be used wherever a superclass can be used implemented in Java by extending a class “has-a” relationship a whole-class relationship between a class and its parts also known as composition or aggregation implemented in Java by instantiating an object inside a class Car Engine Wheel “has-a” relationship “is-a” relationship Vehicle Car Bus

6 Rules of Inheritance A class can only inherit from one class (known as single inheritance). A subclass is guaranteed to do everything the superclass can do. A subclass inherits members from its superclass and can modify or add to its behavior and properties. A subclass can define members of the same name in the superclass, thus hiding the superclass members. Inheritance is transitive (i.e., class A inherits from class B, including what B inherited from class C). All classes inherit from the Object class - the highest in the inheritance hierarchy. private members, hidden members, and constructors are not inherited by subclasses.

7 Inheritance Hierarchy Object SystemMathVehicle CarBoat Person EmployeeDoctor

8 Implementing Inheritance Inheritance is implemented in Java by the extends keyword class Student extends Person { String course; double grade; /* * other members of Person class * can be accessed here */ } public static void main(String[] args) { Student junior = new Student(); // access current class members junior.course = "Computer Science"; junior.grade = 1.5; // access superclass members junior.setName("Andrew"); junior.setAge(21); junior.setSex('M'); } class Person { // set variables to private private static int maleCount; private static int femaleCount; private String name; private char sex; private int age; /* * setters & getters, set to public */ public int getAge() { return age;} public void setAge(int a) { age = a;} public String getName() { return name;} public void setName(String n) { name = n;} public char getSex() { return sex;} public void setSex(char s) { sex = s;} /* * other methods here */ }

9 this and super this is a reference to the object of the current class It can be used to distinguish instance variables from local variables It can be assigned to other references, or passed as a parameter, or cast to other types It cannot be used in a static context super is a reference to the object of a superclass Used to access hidden members of the superclass It cannot be assigned to other references, nor passed as a parameter, nor cast to other types It cannot be used in a static context

10 Using this and super class Student extends Person { private String course; private double grade; static int studentCount; // setters & getters public String getCourse(){return course;} public void setCourse(String course) { this.course = course; } public double getGrade(){return grade;} public void setGrade(double grade) { this.grade = grade; } // access superclass members public void printInfo() { System.out.println(super.getName()); System.out.println(super.getSex()); System.out.println(super.getAge()); } class Person { // set variables to private private static int maleCount; private static int femaleCount; private String name; private char sex; private int age; /* * setters & getters, set to public */ public int getAge() { return age;} public void setAge(int a) { age = a;} public String getName() { return name;} public void setName(String n) { name = n;} public char getSex() { return sex;} public void setSex(char s) { sex = s;} /* * other methods here */ }

11 Constructor Chaining Constructor chaining is invoking all the constructors in the inheritance hierarchy. Constructor chaining guarantees that all superclass constructors are called. Constructors are invoked starting with the current class up to the Object class, then they are executed in reverse order.

12 this() and super() this( ) used to call constructors within the same class used to implement local chaining of constructors must be the first statement in a constructor and can only be used in a constructor super( ) used to invoke constructors in the immediate superclass used to implement chaining of subclass-to-superclass constructors must be the first statement in a constructor and can only be used in a constructor

13 Implementing Constructor Chaining class Person { private String name; private char sex; private int age; Person() {// default constructor sex = 'M'; age = 0; } } class Student extends Person { String course; double grade; static int studentCount; Student() {// default constructor super(); // chain to superclass studentCount++; } Student(String n) {// overloaded constructor (non-default) this();// local chain super.setName(n); } } public static void main(String[] args) { Student junior = new Student("Andrew"); }

14 Casting Casting is converting from one data type to another Implicit casting is an implied casting operation Explicit casting is a required casting operation Primitive casting is converting a primitive data type to another data type Widening conversion is casting a narrower data type to a broader data type Narrowing conversion is casting a broader data type to a narrower data type Reference casting is converting a reference data type to another Upcasting is conversion up the inheritance hierarchy Downcasting is conversion down the inheritance hierarchy Casting between primitive and reference type is not allowed In Java, casting is implemented using () operator

15 Reference Casting Flow Vehicle Car Boat Plane “Upcasting” Vehicle Car BoatPlane Imagine it as a container! “Downcasting”

16 Reference Casting Rule OperationConversion Type string concatenationimplicit upcasting parameter passingimplicit upcasting (if formal parameter is a superclass) (all others)explicit casting (downcasting or upcasting )

17 Implementing Reference Casting public class Vehicle {} public class Car extends Vehicle {} public class Boat extends Vehicle {} public class Plane extends Vehicle {} public static void main(String args[]) { Vehicle v = new Vehicle(); Car c = new Car(); Boat b = new Boat(); Plane p = new Plane(); Vehicle vc = new Car(); v = c; // This will compile. c = v; // This will not compile!!! b = p; // will this compile? b = (Boat) v; // will this compile? c = (Car) vc; // will this compile? }

18 Key Points Inheritance is deriving a new class (subclass) from an existing class (superclass) Inheritance can exhibit an “is-a” or “has-a” relationship In Java, a class can only inherit from a single class All classes inherit from Object class – the highest in the inheritance hierarchy In Java, inheritance is implemented by the extends keyword this is a reference to the object of the current class super is a reference to the object of a superclass this() is used to call constructors within the same class super() is used to invoke constructors in the immediate superclass Casting is converting from one data type to another