0% found this document useful (0 votes)
3 views

03-inheretance

Inheritance in object-oriented programming allows new classes to derive from existing ones, enabling code reuse and supporting polymorphism. It establishes a hierarchical relationship where subclasses inherit properties and methods from their superclasses, while also allowing them to define their own. The document discusses concepts such as single and multiple inheritance, access modifiers, and the 'is-a' relationship between classes.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
3 views

03-inheretance

Inheritance in object-oriented programming allows new classes to derive from existing ones, enabling code reuse and supporting polymorphism. It establishes a hierarchical relationship where subclasses inherit properties and methods from their superclasses, while also allowing them to define their own. The document discusses concepts such as single and multiple inheritance, access modifiers, and the 'is-a' relationship between classes.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 23

Inheritance

61
Inheritance
• On the surface, inheritance is a code re-use issue.
– we can extend code that is already written in a
manageable manner.
• Inheritance is more, it supports polymorphism at the
language level!
• Information is made manageable in a hierarchical
order

Java Programming: OOP


62
Inheritance cont.
• With Inheritance, new class can be derived from
existing classes as a building block
• New class Inherit properties and methods from the
existing class
• New class can also added Its own properties and
methods
• Keyword
– Extends
– Implements

63
Inheritance cont.
• Take an existing object type (collection of fields and
methods) and extend it.
– create a special version of the code without re-
writing any of the existing code (or even explicitly
calling it!).
– End result is a more specific object type, called
the sub-class / derived class / child class.
– The original code is called the super class /
parent class / base class.

Java Programming: OOP


64
Example
Employee
-----------------
-
Student
Name
Email
Phone

FulltimeEmployee
------------------------ University
Salary
Office Student
Contractor
Manager ------------------
------------------ HourlyRate,
CompanyCar ContractDuration
Email
Phone

Undergraduate Post graduate

7/11/2015 Budditha Hettige ([email protected]) 65


Introduction (Cont.)
• Class hierarchy
– Direct superclass
• Inherited explicitly (one level up hierarchy)
– Indirect superclass
• Inherited two or more levels up hierarchy
– Single inheritance
• Inherits from one superclass
– Multiple inheritance
• Inherits from multiple superclasses

66
Inheritance
public class Animal
{ Animal

Dog

public class Dog extends Animal


{ }

67
Introduction (Cont.)
Animal

Private

Animal

Public Dog

Dog

Public

68
protected Members
• protected access
– Intermediate level of protection between public
and private
– protected members accessible by
• superclass members
• subclass members
• Class members in the same package
– Subclass access to superclass member
• Keyword super and a dot (.)

69
Introduction (Cont.)
Animal

Private

Protected

Animal Dog

Public Protected

Dog

Public

70
Example

71
IS-A Relationship (Example)
public class Animal
{ Animal
} extends

public class Mammal extends Animal


{ }
Mamal
public class Reptile extends Animal
{ }

public class Dog extends Animal


{ }

72
IS-A Relationship (Example)
public class Dog extends Mammal
{ Animal
public static void main(String args[])
{
Animal a = new Animal();
Reptile r = new Reptile(); Mamal Dog Reptile
Mammal m = new Mammal();
Dog d = new Dog();
System.out.println(m instanceof Animal);
System.out.println(d instanceof Mammal);
System.out.println(d instanceof Animal);
}
}

73
IS-A Relationship
• In Object Oriented terms following are true:
– Animal is the superclass of Mammal class.
– Animal is the superclass of Reptile class.
– Mammal and Reptile are sub classes of Animal
class.
– Dog is the subclass of both Mammal and Animal
classes.

74
IS-A Relationship
• IS-A relationship we can say:
– Mammal IS-A Animal
– Reptile IS-A Animal
– Dog IS-A Mammal
– Hence : Dog IS-A Animal as well
• Use of the extends keyword the subclasses will be
able to inherit all the properties of the superclass
except for the private properties of the superclass

75
Accessing super class methods
• Can use super() to access all (non-private) super
class methods.
– even those replaced with new versions in the
derived class.
• Can use super() to call base class constructor.

Java Programming: OOP


76
Single Inheritance
• You can't extend more than one class!
– the derived class can't have more than one base
class.

• You can do multiple inheritance with interface


inheritance.

Java Programming: OOP


77
Inheritance Example cont.
• Employee: name, email, phone
– FulltimeEmployee: also has salary, office, benefits, …
• Manager: CompanyCar, can change salaries, rates contracts,
offices, etc.
– Contractor: HourlyRate, ContractDuration, …

• A manager a special kind of FullTimeEmployee,


which is a special kind of Employee.
• The relationship modeled by inheritance is often
referred to as a “is a” relationship

Java Programming: OOP


78
Inheritance Example
Employee
------------------
Name
Email
Phone

FulltimeEmployee
------------------------
Salary
Office
Contractor
Manager ------------------
------------------ HourlyRate,
CompanyCar ContractDuration
Email
Phone
79
Inheritance Example
Employee
------------------
Name
Is a Email Is a
Phone

FulltimeEmployee
------------------------
Salary
Office
Is a Contractor
Manager ------------------
------------------ HourlyRate,
CompanyCar ContractDuration
Email
Phone
80
Example

7/11/2015 Budditha Hettige ([email protected]) 81


Example

7/11/2015 Budditha Hettige ([email protected]) 82


Example

7/11/2015 Budditha Hettige ([email protected]) 83

You might also like