Professional Documents
Culture Documents
com
Inheritance
Dwight Deugo (dwight@espirity.com)
Nesa Matic (nesa@espirity.com)
Additional Contributors
Module Overview
1. Inheritance
2. Interfaces
3. Type Hierarchy in Eclipse
2.
3.
What is inheritance?
Class hierarchies
Method lookup in Java
Use of this and super
Constructors and inheritance
Abstract classes and methods
Interfaces
Type Hierarchy in Eclipse
What is Inheritance?
It promotes reuse
It is a mechanism for sharing commonalities
between classes
Also called superclass
HomePolicy
AutoPolicy
house
auto
getHouse
setHouse
getAuto
setAuto
6
LifePolicy
specialization
generalization
Policy
Defining Inheritance
class
class
class
class
Policy{
HomePolicy extends Policy{
AutoPolicy extends Policy{
LifePolicy extends Policy{
public class Policy extends Object{
Multiple Inheritance
What is Inherited?
Data
Behavior
10
Inheriting Fields
house
Policy
HomePolicy
11
client
premium
policyNumber
client
premium
policyNumber
house
Inheriting Methods
HomePolicy
12
getPremium
setPremium
getPolicyNumber
setPolicyNumber
getClient
setClient
getPremium
setPremium
getPolicyNumber
setPolicyNumber
getHouse
setHouse
2003-2004, Espirity Inc.
Method Lookup
homePolicy.getPremium();
HomePolic
house
y
getHouse
HomePolicy class method not found setHouse
13
premium
getPremiu
m
setPremiu
m 2003-2004, Espirity Inc.
this
super
14
Example
public void print(){
System.out.println("A " + getClass().getName() + ", $" + getPremium());
}
policy.print();
A Policy, $1,200.00
Console
Policy
HomePolicy
public void print(){
super.print();
System.out.println("for house " + getHouse().toString();
}
homePolicy.print();
A HomePolicy, $1,200.00
for house 200 Great Street
15
Console
Method Overriding
getPremium());
16
Overriding Constructors
17
Policy
HomePolicy
public HomePolicy(double premium,Client aClient,String policyNumber,House aHouse)
{
super(premium, aClient, policyNumber);
this.house = aHouse;
}
18
Abstracts Classes
19
Policy
HomePolicy
AutoPolicy
20
LifePolicy
Abstract Methods
Policy
calculateFullPremium
HomePolicy
AutoPolicy
22
LifePolicy
23
Inheritance
2. Interfaces
3.
What is an interface?
Defining interfaces
Using Interfaces
Type Hierarchy in Eclipse
24
What is Interface?
Defining Interface
Rules
Any
Any
Any
Any
28
House
29
Implementing Interfaces
30
Extending Interfaces
public interface Car {
public String getSpeed();
}
<<interface>
Car
<<interface>
Color
<<interface>
ColoredCar
public interface ColoredCar extends Car, Color {
public String getSpeed();
public String getBaseColor();
}
32
Naming Conventions
Cross-Hierarchy Polymorphism
Building
House
Vehicle
<<interface>>
Policyable
34
Auto
Implementation
public class PolicyFactory{
public Policy createPolicy(House aHouse){
return aHouse.createPolicy();
}
public Policy createPolicy(Auto anAuto){
return aHouse.createPolicy();
}
35
Inheritance
Interfaces
Java types
Type casing
Eclipse type hierarchy
Supertype and subtype hierarchies
36
Java Types
Reference type
Interface type
37
AutoPolicy
Policy policy;
policy = new AutoPolicy();
policy.getAuto(); //ERROR
getAuto()
38
Type Casting
D
E
40
41
42
Supertype Hierarchy
43
Subtype Hierarchy
44
Review
Inheritance
Method lookup in Java
Use of this and super
Abstract classes and methods
Interfaces
Classes and interfaces
Polymorphism and inheritance
Type hierarchies in Eclipse
45
Labs!
Lab: Inheritance
46