The document discusses inheritance and class hierarchies in Java. It covers key concepts like inheritance, abstract classes, interfaces, polymorphism, and method overriding. Specific topics summarized include defining abstract classes and subclasses, initializing superclass fields, casting between classes, cloning objects, and how interfaces can emulate multiple inheritance when classes cannot support it directly. The document also discusses visibility and packages in Java.
OOPS Concepts, Java Evolution, Class Object basic, Class Object Constructor overloading, Inheritance, Array and String, Final Abstract class and interfaces, Exceptions, Streams, GUI Applications, Applet Programming, Network Programming and Java Sockets, Multi Threading
In this session you will learn:
Object Orientation
Overloading
Overriding
Constructor
For more information, visit this link: https://www.mindsmapped.com/courses/software-development/online-java-training-for-beginners/
OOPS Concepts, Java Evolution, Class Object basic, Class Object Constructor overloading, Inheritance, Array and String, Final Abstract class and interfaces, Exceptions, Streams, GUI Applications, Applet Programming, Network Programming and Java Sockets, Multi Threading
In this session you will learn:
Object Orientation
Overloading
Overriding
Constructor
For more information, visit this link: https://www.mindsmapped.com/courses/software-development/online-java-training-for-beginners/
Know the difference between Inheritance and aggregation
Understand how inheritance is done in Java
Learn polymorphism through Method Overriding
Learn the keywords : super and final
Understand the basics of abstract class
Classes, Objects and Method - Object Oriented Programming with JavaRadhika Talaviya
Class is template for an object and object is instance of a class.
When we create a class, we are creating a new data type. we can use this type to declare objects of that type.
LA HUG - Video Testimonials with Chynna Morgan - June 2024Lital Barkan
Have you ever heard that user-generated content or video testimonials can take your brand to the next level? We will explore how you can effectively use video testimonials to leverage and boost your sales, content strategy, and increase your CRM data.🤯
We will dig deeper into:
1. How to capture video testimonials that convert from your audience 🎥
2. How to leverage your testimonials to boost your sales 💲
3. How you can capture more CRM data to understand your audience better through video testimonials. 📊
Business Valuation Principles for EntrepreneursBen Wann
This insightful presentation is designed to equip entrepreneurs with the essential knowledge and tools needed to accurately value their businesses. Understanding business valuation is crucial for making informed decisions, whether you're seeking investment, planning to sell, or simply want to gauge your company's worth.
[Note: This is a partial preview. To download this presentation, visit:
https://www.oeconsulting.com.sg/training-presentations]
Sustainability has become an increasingly critical topic as the world recognizes the need to protect our planet and its resources for future generations. Sustainability means meeting our current needs without compromising the ability of future generations to meet theirs. It involves long-term planning and consideration of the consequences of our actions. The goal is to create strategies that ensure the long-term viability of People, Planet, and Profit.
Leading companies such as Nike, Toyota, and Siemens are prioritizing sustainable innovation in their business models, setting an example for others to follow. In this Sustainability training presentation, you will learn key concepts, principles, and practices of sustainability applicable across industries. This training aims to create awareness and educate employees, senior executives, consultants, and other key stakeholders, including investors, policymakers, and supply chain partners, on the importance and implementation of sustainability.
LEARNING OBJECTIVES
1. Develop a comprehensive understanding of the fundamental principles and concepts that form the foundation of sustainability within corporate environments.
2. Explore the sustainability implementation model, focusing on effective measures and reporting strategies to track and communicate sustainability efforts.
3. Identify and define best practices and critical success factors essential for achieving sustainability goals within organizations.
CONTENTS
1. Introduction and Key Concepts of Sustainability
2. Principles and Practices of Sustainability
3. Measures and Reporting in Sustainability
4. Sustainability Implementation & Best Practices
To download the complete presentation, visit: https://www.oeconsulting.com.sg/training-presentations
Company Valuation webinar series - Tuesday, 4 June 2024FelixPerez547899
This session provided an update as to the latest valuation data in the UK and then delved into a discussion on the upcoming election and the impacts on valuation. We finished, as always with a Q&A
Improving profitability for small businessBen Wann
In this comprehensive presentation, we will explore strategies and practical tips for enhancing profitability in small businesses. Tailored to meet the unique challenges faced by small enterprises, this session covers various aspects that directly impact the bottom line. Attendees will learn how to optimize operational efficiency, manage expenses, and increase revenue through innovative marketing and customer engagement techniques.
3.0 Project 2_ Developing My Brand Identity Kit.pptxtanyjahb
A personal brand exploration presentation summarizes an individual's unique qualities and goals, covering strengths, values, passions, and target audience. It helps individuals understand what makes them stand out, their desired image, and how they aim to achieve it.
What is the TDS Return Filing Due Date for FY 2024-25.pdfseoforlegalpillers
It is crucial for the taxpayers to understand about the TDS Return Filing Due Date, so that they can fulfill your TDS obligations efficiently. Taxpayers can avoid penalties by sticking to the deadlines and by accurate filing of TDS. Timely filing of TDS will make sure about the availability of tax credits. You can also seek the professional guidance of experts like Legal Pillers for timely filing of the TDS Return.
Premium MEAN Stack Development Solutions for Modern BusinessesSynapseIndia
Stay ahead of the curve with our premium MEAN Stack Development Solutions. Our expert developers utilize MongoDB, Express.js, AngularJS, and Node.js to create modern and responsive web applications. Trust us for cutting-edge solutions that drive your business growth and success.
Know more: https://www.synapseindia.com/technology/mean-stack-development-company.html
"𝑩𝑬𝑮𝑼𝑵 𝑾𝑰𝑻𝑯 𝑻𝑱 𝑰𝑺 𝑯𝑨𝑳𝑭 𝑫𝑶𝑵𝑬"
𝐓𝐉 𝐂𝐨𝐦𝐬 (𝐓𝐉 𝐂𝐨𝐦𝐦𝐮𝐧𝐢𝐜𝐚𝐭𝐢𝐨𝐧𝐬) is a professional event agency that includes experts in the event-organizing market in Vietnam, Korea, and ASEAN countries. We provide unlimited types of events from Music concerts, Fan meetings, and Culture festivals to Corporate events, Internal company events, Golf tournaments, MICE events, and Exhibitions.
𝐓𝐉 𝐂𝐨𝐦𝐬 provides unlimited package services including such as Event organizing, Event planning, Event production, Manpower, PR marketing, Design 2D/3D, VIP protocols, Interpreter agency, etc.
Sports events - Golf competitions/billiards competitions/company sports events: dynamic and challenging
⭐ 𝐅𝐞𝐚𝐭𝐮𝐫𝐞𝐝 𝐩𝐫𝐨𝐣𝐞𝐜𝐭𝐬:
➢ 2024 BAEKHYUN [Lonsdaleite] IN HO CHI MINH
➢ SUPER JUNIOR-L.S.S. THE SHOW : Th3ee Guys in HO CHI MINH
➢FreenBecky 1st Fan Meeting in Vietnam
➢CHILDREN ART EXHIBITION 2024: BEYOND BARRIERS
➢ WOW K-Music Festival 2023
➢ Winner [CROSS] Tour in HCM
➢ Super Show 9 in HCM with Super Junior
➢ HCMC - Gyeongsangbuk-do Culture and Tourism Festival
➢ Korean Vietnam Partnership - Fair with LG
➢ Korean President visits Samsung Electronics R&D Center
➢ Vietnam Food Expo with Lotte Wellfood
"𝐄𝐯𝐞𝐫𝐲 𝐞𝐯𝐞𝐧𝐭 𝐢𝐬 𝐚 𝐬𝐭𝐨𝐫𝐲, 𝐚 𝐬𝐩𝐞𝐜𝐢𝐚𝐥 𝐣𝐨𝐮𝐫𝐧𝐞𝐲. 𝐖𝐞 𝐚𝐥𝐰𝐚𝐲𝐬 𝐛𝐞𝐥𝐢𝐞𝐯𝐞 𝐭𝐡𝐚𝐭 𝐬𝐡𝐨𝐫𝐭𝐥𝐲 𝐲𝐨𝐮 𝐰𝐢𝐥𝐥 𝐛𝐞 𝐚 𝐩𝐚𝐫𝐭 𝐨𝐟 𝐨𝐮𝐫 𝐬𝐭𝐨𝐫𝐢𝐞𝐬."
The key differences between the MDR and IVDR in the EUAllensmith572606
In the European Union (EU), two significant regulations have been introduced to enhance the safety and effectiveness of medical devices – the In Vitro Diagnostic Regulation (IVDR) and the Medical Device Regulation (MDR).
https://mavenprofserv.com/comparison-and-highlighting-of-the-key-differences-between-the-mdr-and-ivdr-in-the-eu/
Implicitly or explicitly all competing businesses employ a strategy to select a mix
of marketing resources. Formulating such competitive strategies fundamentally
involves recognizing relationships between elements of the marketing mix (e.g.,
price and product quality), as well as assessing competitive and market conditions
(i.e., industry structure in the language of economics).
RMD24 | Debunking the non-endemic revenue myth Marvin Vacquier Droop | First ...BBPMedia1
Marvin neemt je in deze presentatie mee in de voordelen van non-endemic advertising op retail media netwerken. Hij brengt ook de uitdagingen in beeld die de markt op dit moment heeft op het gebied van retail media voor niet-leveranciers.
Retail media wordt gezien als het nieuwe advertising-medium en ook mediabureaus richten massaal retail media-afdelingen op. Merken die niet in de betreffende winkel liggen staan ook nog niet in de rij om op de retail media netwerken te adverteren. Marvin belicht de uitdagingen die er zijn om echt aansluiting te vinden op die markt van non-endemic advertising.
2. Chapter Outline
• Inheritance and how it facilitates code reuse
• How does Java find the “right” method to execute?
• (When more than one has the same name ...)
• Defining and using abstract classes
• Class Object: its methods and how to override them
• How to “clone” an object
• The difference between:
• A true clone (deep copy) and
• A shallow copy
Chapter 3: Inheritance and Class Hierarchies
2
3. Chapter Outline (2)
• Why Java does not implement multiple inheritance
• Get some of the advantages of multiple inheritance:
• Interfaces
• Delegation
• Sample class hierarchy: drawable shapes
• An object factory and how to use it
• Creating packages
• Code visibility
Chapter 3: Inheritance and Class Hierarchies
3
4. Inheritance and Class Hierarchies
• Object-oriented programming (OOP) is popular because:
• It enables reuse of previous code saved as classes
• All Java classes are arranged in a hierarchy
• Object is the superclass of all Java classes
• Inheritance and hierarchical organization capture idea:
• One thing is a refinement or extension of another
Chapter 3: Inheritance and Class Hierarchies
4
5. Inheritance and Class Hierarchies (2)
superclass
subclass
Chapter 3: Inheritance and Class Hierarchies
5
6. Is-a Versus Has-a Relationships
• Confusing has-a and is-a leads to misusing inheritance
• Model a has-a relationship with an attribute (variable)
public class C { ... private B part; ...}
• Model an is-a relationship with inheritance
• If every C is-a B then model C as a subclass of B
• Show this: in C include extends B:
public class C extends B { ... }
Chapter 3: Inheritance and Class Hierarchies
6
7. A Superclass and a Subclass
• Consider two classes: Computer and Laptop
• A laptop is a kind of computer: therefore a subclass
methods of Computer
and all subclasses
additional Methods for
class Laptop
(and its subclasses)
variables of Computer
and all subclasses
additional variables for
class Laptop
(and its subclasses)
Chapter 3: Inheritance and Class Hierarchies
7
8. Illustrating Has-a with Computer
public class Computer {
private Memory mem;
...
}
A Computer has only one Memory
But neither is-a the other
public class Memory {
private int size;
private int speed;
private String kind;
...
}
Chapter 3: Inheritance and Class Hierarchies
8
9. Initializing Data Fields in a Subclass
• What about data fields of a superclass?
• Initialize them by invoking a superclass constructor
with the appropriate parameters
• If the subclass constructor skips calling the superclass ...
• Java automatically calls the no-parameter one
• Point: Insure superclass fields initialized before
subclass starts to initialize its part of the object
Chapter 3: Inheritance and Class Hierarchies
9
10. Example of Initializing Subclass Data
public class Computer {
private String manufacturer; ...
public Computer (String manufacturer, ...) {
this.manufacturer = manufacturer; ...
}
}
public class Laptop extends Computer {
private double weight; ...
public Laptop (String manufacturer, ...,
double weight, ...) {
super(manufacturer, ...);
this.weight = weight;
}
}
Chapter 3: Inheritance and Class Hierarchies
10
11. Protected Visibility for Superclass Data
• private data are not accessible to subclasses!
• protected data fields accessible in subclasses
(Technically, accessible in same package)
• Subclasses often written by others, and
• Subclasses should avoid relying on superclass details
• So ... in general, private is better
Chapter 3: Inheritance and Class Hierarchies
11
12. Method Overriding
• If subclass has a method of a superclass (same signature),
that method overrides the superclass method:
public class A { ...
public int M (float f, String s) { bodyA }
}
public class B extends A { ...
public int M (float f, String s) { bodyB }
}
• If we call M on an instance of B (or subclass of B), bodyB runs
• In B we can access bodyA with: super.M(...)
• The subclass M must have same return type as superclass M
Chapter 3: Inheritance and Class Hierarchies
12
13. Method Overloading
• Method overloading: multiple methods ...
• With the same name
• But different signatures
• In the same class
• Constructors are often overloaded
• Example:
• MyClass (int inputA, int inputB)
• MyClass (float inputA, float inputB)
Chapter 3: Inheritance and Class Hierarchies
13
14. Example of Overloaded Constructors
public class Laptop extends Computer {
private double weight; ...
public Laptop (String manufacturer,
String processor, ...,
double weight, ...) {
super(manufacturer, processor, ...);
this.weight = weight;
}
public Laptop (String manufacturer, ...,
double weight, ...) {
this(manufacturer, “Pentium”, ...,
weight, ...);
}
}
Chapter 3: Inheritance and Class Hierarchies
14
15. Overloading Example From Java Library
ArrayList has two remove methods:
remove (int position)
• Removes object that is at a specified place in the list
remove (Object obj)
• Removes a specified object from the list
It also has two add methods:
add
•
add
•
(Element e)
Adds new object to the end of the list
(int index, Element e)
Adds new object at a specified place in the list
Chapter 3: Inheritance and Class Hierarchies
15
16. Polymorphism
• Variable of superclass type can refer to object of subclass type
• Polymorphism means “many forms” or “many shapes”
• Polymorphism lets the JVM determine at run time which
method to invoke
• At compile time:
• Java compiler cannot determine exact type of the object
• But it is known at run time
• Compiler knows enough for safety: the attributes of the type
• Subclasses guaranteed to obey
Chapter 3: Inheritance and Class Hierarchies
16
17. Interfaces vs Abstract Classes vs Concrete Classes
• A Java interface can declare methods
• But cannot implement them
• Methods of an interface are called abstract methods
• An abstract class can have:
• Abstract methods (no body)
• Concrete methods (with body)
• Data fields
• Unlike a concrete class, an abstract class ...
• Cannot be instantiated
• Can declare abstract methods
• Which must be implemented in all concrete subclasses
Chapter 3: Inheritance and Class Hierarchies
17
18. Abstract Classes and Interfaces
• Abstract classes and interfaces cannot be instantiated
• An abstract class can have constructors!
• Purpose: initialize data fields when a subclass object
is created
• Subclass uses super(…) to call the constructor
• An abstract class may implement an interface
• But need not define all methods of the interface
• Implementation of them is left to subclasses
Chapter 3: Inheritance and Class Hierarchies
18
19. Example of an Abstract Class
public abstract class Food {
public final String name;
private double calories;
public double getCalories () {
return calories;
}
protected Food (String name, double calories) {
this.name
= name;
this.calories = calories;
}
public abstract double percentProtein();
public abstract double percentFat();
public abstract double percentCarbs();
}
Chapter 3: Inheritance and Class Hierarchies
19
20. Example of a Concrete Subclass
public class Meat extends Food {
private final double protCal; ...;
public Meat (String name, double protCal,
double fatCal double carbCal) {
super(name, protCal+fatCal+carbCal);
this.protCal = protCal;
...;
}
public double percentProtein () {
return 100.0 * (protCal / getCalories());
}
...;
}
Chapter 3: Inheritance and Class Hierarchies
20
21. Example: Number and the Wrapper Classes
Declares what the
(concrete)
subclasses have in
common
Chapter 3: Inheritance and Class Hierarchies
21
22. Inheriting from Interfaces vs Classes
• A class can extend 0 or 1 superclass
• Called single inheritance
• An interface cannot extend a class at all
• (Because it is not a class)
• A class or interface can implement 0 or more
interfaces
• Called multiple inheritance
Chapter 3: Inheritance and Class Hierarchies
22
23. Summary of Features of Actual Classes,
Abstract Classes, and Interfaces
Chapter 3: Inheritance and Class Hierarchies
23
24. Class Object
• Object is the root of the class hierarchy
• Every class has Object as a superclass
• All classes inherit the methods of Object
• But may override them
Chapter 3: Inheritance and Class Hierarchies
24
25. The Method toString
• You should always override toString method if you
want to print object state
• If you do not override it:
• Object.toString will return a String
• Just not the String you want!
Example: ArrayBasedPD@ef08879
... The name of the class, @, instance’s hash code
Chapter 3: Inheritance and Class Hierarchies
25
26. Operations Determined by Type of
Reference Variable
• Variable can refer to object whose type is a subclass of the
variable’s declared type
• Type of the variable determines what operations are legal
• Java is strongly typed Object athing = new Integer(25);
• Compiler always verifies that variable’s type includes the
class of every expression assigned to the variable
Chapter 3: Inheritance and Class Hierarchies
26
27. Casting in a Class Hierarchy
• Casting obtains a reference of different, but matching, type
• Casting does not change the object!
• It creates an anonymous reference to the object
Integer aNum = (Integer)aThing;
• Downcast:
• Cast superclass type to subclass type
• Checks at run time to make sure it’s ok
• If not ok, throws ClassCastException
Chapter 3: Inheritance and Class Hierarchies
27
28. Casting in a Class Hierarchy (2)
• instanceof can guard against ClassCastException
Object obj = ...;
if (obj instanceof Integer) {
Integer i = (Integer)obj;
int val = i.intValue();
...;
} else {
...
}
Chapter 3: Inheritance and Class Hierarchies
28
29. Downcasting From an Interface Type
Collection c = new ArrayList();
...;
... ((ArrayList)c).get(3) ...
Chapter 3: Inheritance and Class Hierarchies
29
30. Polymorphism Reduces Need For Type Tests
// Non OO style:
if (stuff[i] instanceof Integer)
sum += ((Integer) stuff[i]).doubleValue();
else if (stuff[i] instanceof Double)
sum += ((Double) stuff[i]).doubleValue();
...
// OO style:
sum += stuff[i].doubleValue();
Chapter 3: Inheritance and Class Hierarchies
30
31. Polymorphism and Type Tests (2)
• Polymorphic code style is more extensible
• Works automatically with new subclasses
• Polymorphic code is more efficient
• System does one indirect branch vs many tests
• So ... uses of instanceof are suspect
Chapter 3: Inheritance and Class Hierarchies
31
32. Java 5.0 Reduces Explicit Conversions
• Java 1.4 and earlier:
Character ch = new Character(‘x’);
char nextCh = ch.charValue();
• Java 5.0:
Character ch = ‘x’;
char nextCh = ch;
// called auto-box
// called auto-unbox
• Java 5.0 generics also reduce explicit casts
Chapter 3: Inheritance and Class Hierarchies
32
33. The Method Object.equals
• Object.equals method has parameter of type Object
public boolean equals (Object other) { ... }
• Compares two objects to determine if they are equal
• Must override equals in order to support comparison
Chapter 3: Inheritance and Class Hierarchies
33
34. Cloning
• Purpose analogous to cloning in biology:
• Create an independent copy of an object
• Initially, objects and clone store same information
• You can change one object without affecting the other
Chapter 3: Inheritance and Class Hierarchies
34
35. The Shallow Copy Problem (Before)
Chapter 3: Inheritance and Class Hierarchies
35
36. The Shallow Copy Problem (After)
Chapter 3: Inheritance and Class Hierarchies
36
37. The Object.clone Method
• Object.clone addresses the shallow copy problem
• The initial copy is a shallow copy, but ...
• For a deep copy:
• Create cloned copies of all components by ...
• Invoking their respective clone methods
Chapter 3: Inheritance and Class Hierarchies
37
39. The Object.clone Method (3)
public class Employee implements Cloneable {
...
public Object clone () {
try {
Employee cloned = (Employee)super.clone();
cloned.address = (Address)address.clone();
return cloned;
} catch (CloneNotSupportedException e) {
throw new InternalError();
}
}
}
Chapter 3: Inheritance and Class Hierarchies
39
40. The Object.clone Method (4)
public class Address implements Cloneable {
...
public Object clone () {
try {
Address cloned = (Address)super.clone();
return cloned;
} catch (CloneNotSupportedException e) {
throw new InternalError();
}
}
}
Chapter 3: Inheritance and Class Hierarchies
40
41. The Object.clone Method (5)
Employee[] company = new Employee[10];
...
Employee[] newCompany =
(Employee[])company.clone();
// need loop below for deep copy
for (int i = 0; i < newCompany.length; i++) {
newCompany[i] =
(Employee)newCompany[i].clone();
}
Chapter 3: Inheritance and Class Hierarchies
41
42. Multiple Inheritance, Multiple Interfaces,
and Delegation
• Multiple inheritance: the ability to extend more
than one class
• Multiple inheritance ...
• Is difficult to implement efficiently
• Can lead to ambiguity: if two parents
implement the same method, which to use?
• Therefore, Java does not allow a class to
extend more than one class
Chapter 3: Inheritance and Class Hierarchies
42
43. Multiple Interfaces can Emulate
Multiple Inheritance
• A class can implement two or more interfaces
• Multiple interfaces emulate multiple inheritance
Desired,
but illegal,
situation
Chapter 3: Inheritance and Class Hierarchies
43
44. Multiple Interfaces can Emulate
Multiple Inheritance
• Approximating the desire with interfaces:
Chapter 3: Inheritance and Class Hierarchies
44
45. Supporting Reuse Using Delegation
• Reduce “cut and paste polymorphism”: copied code
• Idea: Object of another class does the work
• Delegation: original object delegates to the other
Chapter 3: Inheritance and Class Hierarchies
45
46. Delegation: Implementing It
• Class StudentWorker implements interfaces
StudentInt and EmployeeInt
• Class StudentWorker has-a Student and has-an
Employee
• StudentWorker implements (some) StudentInt
methods with calls to its Student object
• Likewise for EmployeeInt methods
• StudentWorker implements getName() itself, etc.
Chapter 3: Inheritance and Class Hierarchies
46
47. Delegation: More About It
• Delegation is like applying hierarchy ideas to
instances rather than classes
• There have been whole OO languages based more on
delegation than on classes
• Opinion: Classes are better, when they can do what
you need
• Downside of delegation: Not as efficient, because of
level of indirection, and need for separate objects
Chapter 3: Inheritance and Class Hierarchies
47
48. Packages and Directories
•
•
•
•
A Java package is a group of cooperating classes
Java programs are organized into packages
The Java API is also organized as packages
Indicate the package of a class at the top of the file:
package thePackageForThisClass;
• Classes of the same package should be
in the same directory (folder)
• Classes in the same folder must be
in the same package
Chapter 3: Inheritance and Class Hierarchies
48
49. Packages and Visibility
• Classes not part of a package can access only
public members of classes in the package
• The default visibility is package visbility
• Has no keyword: indicate by not using another
• Others are: public, protected, private
• Package visibility: between private and protected
• Items with package visibility: visible in package,
invisible outside package
• Items with protected visibility: visible in package
and in subclasses outside the package
Chapter 3: Inheritance and Class Hierarchies
49
50. The No-Package-Declared Environment
• There is a default package
• It contains files that have no package declared
• Default package ok for small projects
• Packages good for larger groups of classes
Chapter 3: Inheritance and Class Hierarchies
50
51. Visibility Supports Encapsulation
• Visibility rules enforce encapsulation in Java
• private: Good for members that should be
invisible even in subclasses
• package: Good to shield classes and members
from classes outside the package
• protected: Good for visibility to extenders of
classes in the package
• public: Good for visibility to all
Chapter 3: Inheritance and Class Hierarchies
51
52. Visibility Supports Encapsulation (2)
• Encapsulation provides insulation against change
• Greater visibility means less encapsulation
• So: use minimum visibility possible for getting the
job done!
Chapter 3: Inheritance and Class Hierarchies
52
54. A Shape Class Hierarchy
Chapter 3: Inheritance and Class Hierarchies
54
55. A Shape Class Hierarchy (2)
Chapter 3: Inheritance and Class Hierarchies
55
56. A Shape Class Hierarchy (3)
Abstract
classes
Chapter 3: Inheritance and Class Hierarchies
56
57. A Shape Class Hierarchy (4)
Chapter 3: Inheritance and Class Hierarchies
57
58. A Shape Class Hierarchy (5)
DrawableRectangle
delegates shape methods,
such as ComputeArea,
to Rectangle
Chapter 3: Inheritance and Class Hierarchies
58
59. A Shape Class Hierarchy (6)
Chapter 3: Inheritance and Class Hierarchies
59
60. A Shape Class Hierarchy (7)
Chapter 3: Inheritance and Class Hierarchies
60
61. A Shape Class Hierarchy (8)
Chapter 3: Inheritance and Class Hierarchies
61
62. A Shape Class Hierarchy (9)
Chapter 3: Inheritance and Class Hierarchies
62
63. Object Factories
• Object factory: method that creates instances
of other classes
• Object factories are useful when:
• The necessary parameters are not known or
must be derived via computation
• The appropriate implementation should be
selected at run time as the result of some
computation
Chapter 3: Inheritance and Class Hierarchies
63
64. Example Object Factory
public static ShapeInt getShape () {
String figType = JOptionPane....();
if (figType.equalsIgnoreCase(“c”)) {
return new Circle();
} else if (figType.equalsIgnoreCase(“r”)) {
return new Rectangle();
} else if (figType.equalsIgnoreCase(“t”)) {
return new RtTriangle();
} else {
return null;
}
}
Chapter 3: Inheritance and Class Hierarchies
64