Download presentation
Presentation is loading. Please wait.
1
CSE 1020:Inheritance Mark Shtern
2
Course evaluations Lecture: Tuesday, July 12 Lab: Tuesday, July 12
Both will take place at the beginning of the lecture / lab
3
Summary Aggregation Collection Composition Traversing
4
UML
5
Definition C extends P:
Every fields and public method present in P is also present in C Extend is inheritance relation between the child and parent C is a P C is specialization of P and P is generalization of C
6
UML diagram
8
Inheritance Inheritance chain Inheritance hierarchy Descendant
Java does not allow multiple- inheritance
9
Subclass API The constructor section The method section
Overriding methods Override vs Overload The field section Shadow Field
10
Example 903 Examine API of the reward card subclass and its supper class, and identify the methods that were Overridden Added by subclass Provide a rational to justify why these methods were overridden or added
11
The substitutability Principle
It says: When parent is expected, a child is accepted output.println(“Enter C or P”); char choice = input.nextChar(); P x; If (choice ==‘P’) { x = new P(); } else { x = new C(); }
12
Example 904 Write a fragment that asks the user whether an ordinary or a reward card is wanted, then create the appropriate card with card number 9 and cardholder name “Adam” CreditCard card; If (type.equals(“O”)) { card = new CreditCard(9,”Adam”); } else { card = new RewardCard(9,”Adam”); }
13
Early and Late Binding The compiler performs early binding as before
Assuming no errors, it culminates in a target VM performs late binding Determine the class of the object If reference null, then a “Null Point Exception” is thrown Searches for method with matching signature and binds with it
14
What is expected output
CreditCard card1 = new RewardCard(9, “Adam”); CreditCard card2 = new RewardCard(9, “Adam”); card1.charge(500); card1.pay(500); output.println(card1.isSimilar(card2));
15
Polymorphism CreditCard card; .... Card.charge(500.0);
Polymorphic is capable of having multiple forms Polymorphism refers to the ability of the same entity to have multiple forms instanceof
16
Predict output of the following code
CreditCard card1 = new RewardCard(9, “Adam”); CreditCard card2 = new RewardCard(9, “Adam”); card1.charge(500); card1.pay(100); output.println(card1.isSimilar(card2)); output.println(card1.isSimilar((RewardCard)card2)); output.println((RewardCard)card1.isSimilar(card2)); output.println((RewardCard)card1.isSimilar((RewardCard)card2));
17
Abstract Class Abstract class does not encapsulate an actual object
18
Abstract Class API public abstract class Vehicle Factory Method
Vehicle myCar = Vehicle.createCar(); Subclass constructor Vehicle myCar = new Car();
19
Example 908 Create an instance of the type Calendar
20
Interface Interface retains only Constants
Contracts of the shared methods
21
Interface A class contains implementation of all interface methods is said to implement interface Implementation is-a relation A class can implement as many interfaces as needed
22
Object Class Boolean equals(Object other) String toString()
Class getClass()
23
Generic Generic or Parameterized Type
The generic idea allows an implementer to write a component that can handle only one type T but without specifying T Bar<CreaditCard> bag = new Bag<CreaditCard>();
24
Summary Inheritance, Polymorphism and Substitutability, Binding
Interfaces, Abstract class Generic
25
Exercise 9.4 (modified) Determine the API of class Bee in this UML diagram
26
Exercise Based on the inheritance chain determine whether the following fragments have Compiler-error Run-time error Justify the cast in
27
Exercise 920 The following fragment seeks to invoke toString method of the Object class in order to determine the memory address of a Fraction instance Object tmp = new Fraction(); output.println(tmp.toString()); output.println((Object)tmp.toString()); Predict and Explain the output
28
Exercise 922 Consider the following fragment
Fraction x = new Money(2.25); Money y = new Money(5.27); output.println(x.resembles(y)); output.println(((MixedNumber)x).resembles(y)); output.println(((Money)x).resembles(y)); Predict output
29
Same as previous (Exercise 921)
Fraction x = new Money(2.25); Fraction xFr = new Fraction(225, 100); Fraction yFr = new Fraction(527, 100); output.println(xFr.resembles(yFr)); MixedNumber xMi = new MixedNumber(1, 2, 25, 100); MixedNumber yMi = new MixedNumber(1, 5, 27, 100); output.println(xMi.resembles(yMi)); Money xMo = new Money(2.25); Money yMo = new Money(5.27); output.println(xMo.resembles(yMo));
30
Exercise 9.16 Write a program that generates statistics about the return type of the getRandom method of the MixedNumber class Invoke 100 times and output the number of times a Fraction or a MixedNumber was returned Use instanceof
31
Exercise 9.17 Write a program that generates statistics about the return type of the getRandom method of the MixedNumber class Invoke 100 times and output the number of times a Fraction or a MixedNumber was returned Use getClass
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.