1 Introduction to Inheritance Overview l Inheritance ensures Reusability l Example of Inheritance l What is actually Inherited? l Overloading Vs. Overriding.

Slides:



Advertisements
Similar presentations
Introduction to Java 2 Programming
Advertisements

Object Oriented Programming with Java
OO Programming in Java Objectives for today: Constructors Method Overriding & Overloading Encapsulation.
Chapter 1 Inheritance University Of Ha’il.
INHERITANCE BASICS Reusability is achieved by INHERITANCE
1 Inheritance Chapter 9. 2 Module Outcomes To develop a subclass from a superclass through inheritance To invoke the superclass ’ s constructors and methods.
CS 211 Inheritance AAA.
Comp 249 Programming Methodology Chapter 7 - Inheritance – Part A Dr. Aiman Hanna Department of Computer Science & Software Engineering Concordia University,
Inheritance Inheritance Reserved word protected Reserved word super
Java Inheritance. What is inherited A subclass inherits variables and methods from its superclass and all of its ancestors. The subclass can use these.
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. 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.
1. 2 Introduction to Methods  Type of Variables  Static variables  Static & Instance Methods  The toString  equals methods  Memory Model  Parameter.
Inheritance. In this chapter, we will cover: The concept of inheritance Extending classes Overriding superclass methods Working with superclasses that.
1 More on Inheritance Overview l Object: The father of all classes l Casting and Classes l Object Cloning l Importance of Cloning.
Review of Object-Oriented Concepts in JAVA Object-Oriented Concepts supported by JAVA. Advantages of Object-Orientation. Inheritance. Abstract Classes.
1 Inheritance Overview l Inheritance ensures Reusability l Example of Inheritance l What is actually Inherited? l Overloading Vs. Overriding l Object:
1 Lecture 4 Further OO Concepts I - Polymorphism Overview  What is polymorphism?  Why polymorphism is wonderful?  Why is Upcasting useful?  What is.
1 Overloading vs. Overriding b Don't confuse the concepts of overloading and overriding b Overloading deals with multiple methods in the same class with.
1 Further OO Concepts (Part I) Further OO Concepts I - Polymorphism Overview l Polymorphism is Wonderful. l Usefulness of Up casting? l Method call binding?
Review of Object-Oriented Concepts in JAVA Object-Oriented Concepts supported by JAVA. Object-Oriented Concepts supported by JAVA. Advantages of Object-Orientation.
1 Inheritance and Polymorphism. 2 Motivations Suppose you will define classes to model circles, rectangles, and triangles. These classes have many common.
Unit 031 Interfaces What is an Interface? Interface Declaration Syntax Implementing Interfaces Using Interfaces as Types Interfaces and Inheritance Interfaces.
Unit 011 Inheritance Recall What Inheritance is About The extends Keyword The Object Class Overriding versus Overloading What is Actually Inherited? Single.
Computer Science I Inheritance Professor Evan Korth New York University.
“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
Inheritance and Class Hierarchies Ellen Walker CPSC 201 Data Structures Hiram College.
Inheritance. Introduction Inheritance is one of the cornerstones of object-oriented programming because it allows the creation of hierarchical classifications.
Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All rights reserved. 1 Chapter 11 Inheritance and Polymorphism.
 2002 Prentice Hall. All rights reserved. 1 Introduction to Inheritance Inheritance: –1 of 3 main features of OOP –Form of software reusability –(Derived)
Inheritance and Polymorphism Daniel Liang, Introduction to Java Programming.
Inheritance (Part 5) Odds and ends 1. Static Methods and Inheritance  there is a significant difference between calling a static method and calling a.
8. Inheritance “Is-a” Relationship. Topics Creating Subclasses Overriding Methods Class Hierarchies Abstract Class Inheritance and GUIs The Timer Class.
Inheritance Objectives: Creating new classes from existing classes The protected modifier Creating class hierarchies Abstract classes Indirect visibility.
MIT AITI 2004 – Lecture 13 Abstract Classes and Interfaces.
Liang, Introduction to Java Programming, Sixth Edition, (c) 2007 Pearson Education, Inc. All rights reserved Chapter 9 Inheritance and.
Programming With Java ICS201 University Of Ha’il1 Chapter 7 Inheritance.
Application development with Java Lecture 21. Inheritance Subclasses Overriding Object class.
1 Inheritance Reserved word protected Reserved word super Overriding methods Class Hierarchies Reading for this lecture: L&L 9.1 – 9.4.
Liang, Introduction to Java Programming, Eighth Edition, (c) 2011 Pearson Education, Inc. All rights reserved COS240 O-O Languages AUBG,
Inheritance in Java. Access Specifiers private keywordprivate keyword –Used for most instance variables –private variables and methods are accessible.
Classes, Interfaces and Packages
Inheritance Chapter 11 in Gaddis. Is a relationships in ‘real’ life Exist when one object is a specialized version of another one –Examples An english.
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.
OOP in Java : © W. Milner 2005 : Slide 1 Java and OOP Part 3 – Extending classes.
Terms and Rules II Professor Evan Korth New York University (All rights reserved)
Liang, Introduction to Java Programming, Seventh Edition, (c) 2009 Pearson Education, Inc. All rights reserved Chapter 10 Inheritance and Polymorphism.
BY:- TOPS Technologies
Java Programming Fifth Edition Chapter 9 Introduction to Inheritance.
Modern Programming Tools And Techniques-I
Lecture 12 Inheritance.
Inheritance and Polymorphism
Lecture 10: Inheritance Subclasses and superclasses
Road Map Inheritance Class hierarchy Overriding methods Constructors
Web Design & Development Lecture 5
Week 8 Lecture -3 Inheritance and Polymorphism
OOP’S Concepts in C#.Net
Chapter 9 Inheritance and Polymorphism
Inheritance Chapter 5.
Review of Object-Oriented Concepts in JAVA
Comp 249 Programming Methodology
Extending Classes.
Review of Object-Oriented Concepts in JAVA
Inheritance.
Chapter 11 Inheritance and Polymorphism
Chapter 11 Inheritance and Polymorphism Part 1
Chapter 11 Inheritance and Encapsulation and Polymorphism
Presentation transcript:

1 Introduction to Inheritance Overview l Inheritance ensures Reusability l Example of Inheritance l What is actually Inherited? l Overloading Vs. Overriding l Preview: More on Inheritance

2 Inheritance ensures reusability l One of the good features of Java is reusability. That is once a class is defined, it can be used in any application where its method are required. l Java further extends the notion of re- usability through inheritance. l If we need to write a class and if there is an existing class that almost satisfies our requirements, then we do not need to start from scratch. We fully take advantage of the existing class by writing a class that provides only the additional or modified requirements. l The class we write is called an extension, child or sub-class of the existing class. l The existing class is called parent, ancestor, super or base class.

3 Example of Inheritance Consider the following Student class : class Student { private long id; private String name; private double gpa; public Student(long id, String name, double gpa) { this.id = id; this.name = name; this.gpa = gpa; } public Student() { this(999999, "No name", 0.0); } public void changeGPA(double newGPA) { gpa = newGPA; } public double getGPA() { return gpa; } public void print() { System.out.print(id+" "+name+ " "+gpa); }

4 Example of Inheritance (Cont’d) Class TestStudent { public static void main (String[] args) { Student s1 = new Student(); s1.print(); Student s2 = new Student(991234,"Al- Ghamdi Ahmed", 3.45); s2.changeGPA(3.75); s2.print(); } l Now suppose we wish to write another class to represent Research Assistant. l Research Assistant is also a student but with the additional field for work load. l Instead of writing another class from the scratch, we extend the Student class as follows.

5 Example of Inheritance (Cont’d) class ResearchAssistant extends Student { private int workLoad; // in hours ResearchAssistant(long id, String name, double gpa,int workLoad){ super(id, name, gpa); this.workLoad = workLoad; } ResearchAssistant() { super(); workLoad = 0; } public void print() { super.print(); System.out.print(" " + workLoad); } class TestReserchAssistant { public static void main (String[] args) { ResearchAssistant s1 = new ResearchAssistant(); s1.print();

6 Example of Inheritance (Cont’d) ResearchAssistant s2 = new ResearchAssistant(991234, "Al- Ghamdi Ahmed",3.45,15); s2.changeGPA(3.75); s2.print(); } l The super reference can be used to refer to the parent class. Like this, it can be used in dual form – with a dot to access a member (method or field) or without dot to call a constructor. l When super is used to call the parent’s constructor, it must be the first statement in the subclass’s constructor. l If a subclass constructor does not explicitly call the parent’s constructor, the compiler automatically inserts a call to the parent’s default constructor. l If the parent class does not have a default constructor and none of the other constructor is called, the compiler reports an error.

7 What is actually inherited? l Non-private fields and methods of the parent class are automatically inherited by the sub- class except those that are overridden by the subclass. l If a method is re-defined in the subclass with the same signature as that in the parent class, it is said to override the method in the parent class. l Constructors are not inherited, but they can be invoked in the subclass’s constructor as seen in the example. l Giving a field in a class the same name as a field in an ancestor hides the ancestor's field. The field exists, but cannot be accessed by its simple name. If has to be called using the super keyword.

8 Overloading vs. Overriding l Overloading deals with multiple methods in the same class with the same name but different signatures l Overriding deals with two methods, one in a parent class and one in a child class, that have the same signature l Overloading lets you define a similar operation in different ways for different data l Overriding lets you define a similar operation in different ways for different object types

9 Another Example The following example further illustrates the idea of inheritance : class Employee { private String name; private double salary; public Employee(String n, double s) { name = n; salary = s; } public String toString() { return "Name: " + name + ", Salary=" + salary; } class Manager extends Employee { private String department; public Manager(String n, double s, String d) { super(n, s); department = d; } public String toString() { return super.toString() + ", Department=" + department; }

10 Another Example (cont’d) public class Problem4 { public static void main(String[] args) { Employee e = new Employee("Ibrahim", 65000); Manager m = new Manager("Jarallah", 85000, "Engineering"); System.out.println(e); System.out.println(m); }