how to work with inheritance - university of texas at …cannata/pl/class notes/ch11.pdf ·...
TRANSCRIPT
![Page 1: How to work with inheritance - University of Texas at …cannata/pl/Class Notes/ch11.pdf · Murach's Beg. Java with NetBeans, C11 © 2015, Mike Murach & Associates, Inc Slide 1 Chapter](https://reader030.vdocuments.site/reader030/viewer/2022021805/5bae14b409d3f2251e8ca62f/html5/thumbnails/1.jpg)
Murach's Beg. Java with NetBeans, C11 © 2015, Mike Murach & Associates, Inc.
Slide 1
Chapter 11
How to work with inheritance
![Page 2: How to work with inheritance - University of Texas at …cannata/pl/Class Notes/ch11.pdf · Murach's Beg. Java with NetBeans, C11 © 2015, Mike Murach & Associates, Inc Slide 1 Chapter](https://reader030.vdocuments.site/reader030/viewer/2022021805/5bae14b409d3f2251e8ca62f/html5/thumbnails/2.jpg)
Murach's Beg. Java with NetBeans, C11 © 2015, Mike Murach & Associates, Inc.
Slide 2
Objectives
Applied • Write the code for a class that inherits another class and overrides
one or more of its methods. • In a user-defined class, write code that overrides the toString
method of the Object class to control the String object that’s returned by this method.
• In a user-defined class, write code that overrides the equals method of the Object class to control how the user-defined class tests for equality.
![Page 3: How to work with inheritance - University of Texas at …cannata/pl/Class Notes/ch11.pdf · Murach's Beg. Java with NetBeans, C11 © 2015, Mike Murach & Associates, Inc Slide 1 Chapter](https://reader030.vdocuments.site/reader030/viewer/2022021805/5bae14b409d3f2251e8ca62f/html5/thumbnails/3.jpg)
Murach's Beg. Java with NetBeans, C11 © 2015, Mike Murach & Associates, Inc.
Slide 3
Objectives (cont.)
Knowledge • Explain what it means for a subclass to extend a superclass. • Explain why the toString method and the equals method are available to
all objects and when you might override these methods. • Describe the access modifiers that you can use for the members of a class. • Describe what the @Override annotation does. • Explain what polymorphism is and how it works. • Name the operator that you can use to check whether an object is an
instance of a specified class. • Explain when it’s necessary to use explicit casting when working with
objects created from derived classes. • Explain how abstract classes and methods work. • Explain how final classes, methods, and parameters work.
![Page 4: How to work with inheritance - University of Texas at …cannata/pl/Class Notes/ch11.pdf · Murach's Beg. Java with NetBeans, C11 © 2015, Mike Murach & Associates, Inc Slide 1 Chapter](https://reader030.vdocuments.site/reader030/viewer/2022021805/5bae14b409d3f2251e8ca62f/html5/thumbnails/4.jpg)
Murach's Beg. Java with NetBeans, C11 © 2015, Mike Murach & Associates, Inc.
Slide 4
Business classes for a Product Maintenance application
![Page 5: How to work with inheritance - University of Texas at …cannata/pl/Class Notes/ch11.pdf · Murach's Beg. Java with NetBeans, C11 © 2015, Mike Murach & Associates, Inc Slide 1 Chapter](https://reader030.vdocuments.site/reader030/viewer/2022021805/5bae14b409d3f2251e8ca62f/html5/thumbnails/5.jpg)
Murach's Beg. Java with NetBeans, C11 © 2015, Mike Murach & Associates, Inc.
Slide 5
The Object class java.lang.Object
Methods of the Object class toString()
equals(Object)
getClass()
clone()
hashCode()
![Page 6: How to work with inheritance - University of Texas at …cannata/pl/Class Notes/ch11.pdf · Murach's Beg. Java with NetBeans, C11 © 2015, Mike Murach & Associates, Inc Slide 1 Chapter](https://reader030.vdocuments.site/reader030/viewer/2022021805/5bae14b409d3f2251e8ca62f/html5/thumbnails/6.jpg)
Murach's Beg. Java with NetBeans, C11 © 2015, Mike Murach & Associates, Inc.
Slide 6
A typical value returned by a Product object’s… toString method murach.business.Product@15db9742
hashCode method 366712642
![Page 7: How to work with inheritance - University of Texas at …cannata/pl/Class Notes/ch11.pdf · Murach's Beg. Java with NetBeans, C11 © 2015, Mike Murach & Associates, Inc Slide 1 Chapter](https://reader030.vdocuments.site/reader030/viewer/2022021805/5bae14b409d3f2251e8ca62f/html5/thumbnails/7.jpg)
Murach's Beg. Java with NetBeans, C11 © 2015, Mike Murach & Associates, Inc.
Slide 7
Access modifiers
Keyword Available to… private the current class. public all packages. protected the same package and subclasses. no keyword coded the same package.
![Page 8: How to work with inheritance - University of Texas at …cannata/pl/Class Notes/ch11.pdf · Murach's Beg. Java with NetBeans, C11 © 2015, Mike Murach & Associates, Inc Slide 1 Chapter](https://reader030.vdocuments.site/reader030/viewer/2022021805/5bae14b409d3f2251e8ca62f/html5/thumbnails/8.jpg)
Murach's Beg. Java with NetBeans, C11 © 2015, Mike Murach & Associates, Inc.
Slide 8
An annotation for overriding a method @Override // method declaration goes here
![Page 9: How to work with inheritance - University of Texas at …cannata/pl/Class Notes/ch11.pdf · Murach's Beg. Java with NetBeans, C11 © 2015, Mike Murach & Associates, Inc Slide 1 Chapter](https://reader030.vdocuments.site/reader030/viewer/2022021805/5bae14b409d3f2251e8ca62f/html5/thumbnails/9.jpg)
Murach's Beg. Java with NetBeans, C11 © 2015, Mike Murach & Associates, Inc.
Slide 9
The code for the Product superclass package murach.business; import java.text.NumberFormat; public class Product { private String code; private String description; private double price; protected static int count = 0; public Product() { }
![Page 10: How to work with inheritance - University of Texas at …cannata/pl/Class Notes/ch11.pdf · Murach's Beg. Java with NetBeans, C11 © 2015, Mike Murach & Associates, Inc Slide 1 Chapter](https://reader030.vdocuments.site/reader030/viewer/2022021805/5bae14b409d3f2251e8ca62f/html5/thumbnails/10.jpg)
Murach's Beg. Java with NetBeans, C11 © 2015, Mike Murach & Associates, Inc.
Slide 10
The code for the Product superclass (cont.) // get and set accessors for the code, description, // and price instance variables @Override public String toString() { return description; } // create public access for the count variable public static int getCount() { return count; } }
![Page 11: How to work with inheritance - University of Texas at …cannata/pl/Class Notes/ch11.pdf · Murach's Beg. Java with NetBeans, C11 © 2015, Mike Murach & Associates, Inc Slide 1 Chapter](https://reader030.vdocuments.site/reader030/viewer/2022021805/5bae14b409d3f2251e8ca62f/html5/thumbnails/11.jpg)
Murach's Beg. Java with NetBeans, C11 © 2015, Mike Murach & Associates, Inc.
Slide 11
The syntax for working with subclasses To declare a subclass public class SubclassName extends SuperClassName{}
To call a superclass constructor super(argumentList)
To call a superclass method super.methodName(argumentList)
![Page 12: How to work with inheritance - University of Texas at …cannata/pl/Class Notes/ch11.pdf · Murach's Beg. Java with NetBeans, C11 © 2015, Mike Murach & Associates, Inc Slide 1 Chapter](https://reader030.vdocuments.site/reader030/viewer/2022021805/5bae14b409d3f2251e8ca62f/html5/thumbnails/12.jpg)
Murach's Beg. Java with NetBeans, C11 © 2015, Mike Murach & Associates, Inc.
Slide 12
The code for a Book subclass package murach.business; public class Book extends Product { private String author; public Book() { super(); // constructor of Product superclass author = ""; count++; } public void setAuthor(String author) { this.author = author; }
![Page 13: How to work with inheritance - University of Texas at …cannata/pl/Class Notes/ch11.pdf · Murach's Beg. Java with NetBeans, C11 © 2015, Mike Murach & Associates, Inc Slide 1 Chapter](https://reader030.vdocuments.site/reader030/viewer/2022021805/5bae14b409d3f2251e8ca62f/html5/thumbnails/13.jpg)
Murach's Beg. Java with NetBeans, C11 © 2015, Mike Murach & Associates, Inc.
Slide 13
The code for a Book subclass (cont.) public String getAuthor() { return author; } @Override public String toString() { return super.toString() + // Product superclass " by " + author; } }
![Page 14: How to work with inheritance - University of Texas at …cannata/pl/Class Notes/ch11.pdf · Murach's Beg. Java with NetBeans, C11 © 2015, Mike Murach & Associates, Inc Slide 1 Chapter](https://reader030.vdocuments.site/reader030/viewer/2022021805/5bae14b409d3f2251e8ca62f/html5/thumbnails/14.jpg)
Murach's Beg. Java with NetBeans, C11 © 2015, Mike Murach & Associates, Inc.
Slide 14
Three versions of the toString method The toString method in the Product superclass public String toString() { return description; }
The toString method in the Book subclass public String toString() { return super.toString() + " by " + author; }
The toString method in the Software subclass public String toString() { return super.toString() + " " + version; }
![Page 15: How to work with inheritance - University of Texas at …cannata/pl/Class Notes/ch11.pdf · Murach's Beg. Java with NetBeans, C11 © 2015, Mike Murach & Associates, Inc Slide 1 Chapter](https://reader030.vdocuments.site/reader030/viewer/2022021805/5bae14b409d3f2251e8ca62f/html5/thumbnails/15.jpg)
Murach's Beg. Java with NetBeans, C11 © 2015, Mike Murach & Associates, Inc.
Slide 15
Code that uses the overridden methods Book b = new Book(); b.setCode("java"); b.setDescription("Murach's Java Programming"); b.setPrice(57.50); b.setAuthor("Joel Murach"); Software s = new Software(); s.setCode("netbeans"); s.setDescription("NetBeans"); s.setPrice(0.00); s.setVersion("8.0"); Product p; p = b; System.out.println(p.toString()); //toString from Book class p = s; System.out.println(p.toString());
// toString from Software class
![Page 16: How to work with inheritance - University of Texas at …cannata/pl/Class Notes/ch11.pdf · Murach's Beg. Java with NetBeans, C11 © 2015, Mike Murach & Associates, Inc Slide 1 Chapter](https://reader030.vdocuments.site/reader030/viewer/2022021805/5bae14b409d3f2251e8ca62f/html5/thumbnails/16.jpg)
Murach's Beg. Java with NetBeans, C11 © 2015, Mike Murach & Associates, Inc.
Slide 16
The console for the Product application Welcome to the Product Viewer Enter product code: java Description: Murach's Java Programming by Joel Murach Price: $57.50 Product count: 1 Continue? (y/n): y Enter product code: netbeans Description: NetBeans 8.0 Price: $0.00 Product count: 2 Continue? (y/n): y
![Page 17: How to work with inheritance - University of Texas at …cannata/pl/Class Notes/ch11.pdf · Murach's Beg. Java with NetBeans, C11 © 2015, Mike Murach & Associates, Inc Slide 1 Chapter](https://reader030.vdocuments.site/reader030/viewer/2022021805/5bae14b409d3f2251e8ca62f/html5/thumbnails/17.jpg)
Murach's Beg. Java with NetBeans, C11 © 2015, Mike Murach & Associates, Inc.
Slide 17
The console for the Product application (cont.) Enter product code: xxxx No product matches this product code. Continue? (y/n):
![Page 18: How to work with inheritance - University of Texas at …cannata/pl/Class Notes/ch11.pdf · Murach's Beg. Java with NetBeans, C11 © 2015, Mike Murach & Associates, Inc Slide 1 Chapter](https://reader030.vdocuments.site/reader030/viewer/2022021805/5bae14b409d3f2251e8ca62f/html5/thumbnails/18.jpg)
Murach's Beg. Java with NetBeans, C11 © 2015, Mike Murach & Associates, Inc.
Slide 18
The code for the Product class package murach.business; import java.text.NumberFormat; public class Product { private String code; private String description; private double price; protected static int count = 0; public Product() {} public void setCode(String code) { this.code = code; } public String getCode(){ return code; }
![Page 19: How to work with inheritance - University of Texas at …cannata/pl/Class Notes/ch11.pdf · Murach's Beg. Java with NetBeans, C11 © 2015, Mike Murach & Associates, Inc Slide 1 Chapter](https://reader030.vdocuments.site/reader030/viewer/2022021805/5bae14b409d3f2251e8ca62f/html5/thumbnails/19.jpg)
Murach's Beg. Java with NetBeans, C11 © 2015, Mike Murach & Associates, Inc.
Slide 19
The code for the Product class (cont.) public void setDescription(String description) { this.description = description; } public String getDescription() { return description; } public void setPrice(double price) { this.price = price; } public double getPrice() { return price; }
![Page 20: How to work with inheritance - University of Texas at …cannata/pl/Class Notes/ch11.pdf · Murach's Beg. Java with NetBeans, C11 © 2015, Mike Murach & Associates, Inc Slide 1 Chapter](https://reader030.vdocuments.site/reader030/viewer/2022021805/5bae14b409d3f2251e8ca62f/html5/thumbnails/20.jpg)
Murach's Beg. Java with NetBeans, C11 © 2015, Mike Murach & Associates, Inc.
Slide 20
The code for the Product class (cont.) public String getPriceFormatted() { NumberFormat currency = NumberFormat.getCurrencyInstance(); return currency.format(price); } @Override public String toString() { return description; } public static int getCount() { return count; } }
![Page 21: How to work with inheritance - University of Texas at …cannata/pl/Class Notes/ch11.pdf · Murach's Beg. Java with NetBeans, C11 © 2015, Mike Murach & Associates, Inc Slide 1 Chapter](https://reader030.vdocuments.site/reader030/viewer/2022021805/5bae14b409d3f2251e8ca62f/html5/thumbnails/21.jpg)
Murach's Beg. Java with NetBeans, C11 © 2015, Mike Murach & Associates, Inc.
Slide 21
The code for the Book class package murach.business; public class Book extends Product { private String author; public Book() { super(); author = ""; count++; } public void setAuthor(String author) { this.author = author; } public String getAuthor() { return author; }
![Page 22: How to work with inheritance - University of Texas at …cannata/pl/Class Notes/ch11.pdf · Murach's Beg. Java with NetBeans, C11 © 2015, Mike Murach & Associates, Inc Slide 1 Chapter](https://reader030.vdocuments.site/reader030/viewer/2022021805/5bae14b409d3f2251e8ca62f/html5/thumbnails/22.jpg)
Murach's Beg. Java with NetBeans, C11 © 2015, Mike Murach & Associates, Inc.
Slide 22
The code for the Book class (cont.) @Override public String toString() { return super.toString() + " by " + author; } }
![Page 23: How to work with inheritance - University of Texas at …cannata/pl/Class Notes/ch11.pdf · Murach's Beg. Java with NetBeans, C11 © 2015, Mike Murach & Associates, Inc Slide 1 Chapter](https://reader030.vdocuments.site/reader030/viewer/2022021805/5bae14b409d3f2251e8ca62f/html5/thumbnails/23.jpg)
Murach's Beg. Java with NetBeans, C11 © 2015, Mike Murach & Associates, Inc.
Slide 23
The code for the Software class package murach.business; public class Software extends Product { private String version; public Software() { super(); version = ""; count++; } public void setVersion(String version) { this.version = version; } public String getVersion() { return version; }
![Page 24: How to work with inheritance - University of Texas at …cannata/pl/Class Notes/ch11.pdf · Murach's Beg. Java with NetBeans, C11 © 2015, Mike Murach & Associates, Inc Slide 1 Chapter](https://reader030.vdocuments.site/reader030/viewer/2022021805/5bae14b409d3f2251e8ca62f/html5/thumbnails/24.jpg)
Murach's Beg. Java with NetBeans, C11 © 2015, Mike Murach & Associates, Inc.
Slide 24
The code for the Software class (cont.) @Override public String toString() { return super.toString() + " " + version; } }
![Page 25: How to work with inheritance - University of Texas at …cannata/pl/Class Notes/ch11.pdf · Murach's Beg. Java with NetBeans, C11 © 2015, Mike Murach & Associates, Inc Slide 1 Chapter](https://reader030.vdocuments.site/reader030/viewer/2022021805/5bae14b409d3f2251e8ca62f/html5/thumbnails/25.jpg)
Murach's Beg. Java with NetBeans, C11 © 2015, Mike Murach & Associates, Inc.
Slide 25
The code for the ProductDB class package murach.db; import murach.business.Book; import murach.business.Product; import murach.business.Software; public class ProductDB { public static Product getProduct(String productCode) { // In a more realistic application, this code would // get the data for the product from a file or database // For now, this code just uses if/else statements // to return the correct product data Product p = null;
![Page 26: How to work with inheritance - University of Texas at …cannata/pl/Class Notes/ch11.pdf · Murach's Beg. Java with NetBeans, C11 © 2015, Mike Murach & Associates, Inc Slide 1 Chapter](https://reader030.vdocuments.site/reader030/viewer/2022021805/5bae14b409d3f2251e8ca62f/html5/thumbnails/26.jpg)
Murach's Beg. Java with NetBeans, C11 © 2015, Mike Murach & Associates, Inc.
Slide 26
The code for the ProductDB class (cont.) if (productCode.equalsIgnoreCase("java") || productCode.equalsIgnoreCase("jsp") || productCode.equalsIgnoreCase("mysql")) { Book b = new Book(); if (productCode.equalsIgnoreCase("java")) { b.setCode(productCode); b.setDescription("Murach's Java Programming"); b.setPrice(57.50); b.setAuthor("Joel Murach"); } else if (productCode.equalsIgnoreCase("jsp")) { b.setCode(productCode); b.setDescription( "Murach's Java Servlets and JSP"); b.setPrice(57.50); b.setAuthor("Mike Urban");
![Page 27: How to work with inheritance - University of Texas at …cannata/pl/Class Notes/ch11.pdf · Murach's Beg. Java with NetBeans, C11 © 2015, Mike Murach & Associates, Inc Slide 1 Chapter](https://reader030.vdocuments.site/reader030/viewer/2022021805/5bae14b409d3f2251e8ca62f/html5/thumbnails/27.jpg)
Murach's Beg. Java with NetBeans, C11 © 2015, Mike Murach & Associates, Inc.
Slide 27
The code for the ProductDB class (cont.) } else if (productCode.equalsIgnoreCase("mysql")) { b.setCode(productCode); b.setDescription("Murach's MySQL"); b.setPrice(54.50); b.setAuthor("Joel Murach"); } p = b; // set Product object equal to Book object } else if (productCode.equalsIgnoreCase("netbeans")) { Software s = new Software(); s.setCode("netbeans"); s.setDescription("NetBeans"); s.setPrice(0.00); s.setVersion("8.0"); p = s; // set Product equal to Software } return p; } }
![Page 28: How to work with inheritance - University of Texas at …cannata/pl/Class Notes/ch11.pdf · Murach's Beg. Java with NetBeans, C11 © 2015, Mike Murach & Associates, Inc Slide 1 Chapter](https://reader030.vdocuments.site/reader030/viewer/2022021805/5bae14b409d3f2251e8ca62f/html5/thumbnails/28.jpg)
Murach's Beg. Java with NetBeans, C11 © 2015, Mike Murach & Associates, Inc.
Slide 28
The code for the ProductApp class package murach.ui; import java.util.Scanner; import murach.db.ProductDB; import murach.business.Product; public class ProductApp { public static void main(String args[]) { // display a welcome message System.out.println("Welcome to the Product Viewer"); System.out.println(); // perform 1 or more selections Scanner sc = new Scanner(System.in); String choice = "y"; while (choice.equalsIgnoreCase("y")) { System.out.print("Enter product code: "); String productCode = sc.nextLine(); // get input
![Page 29: How to work with inheritance - University of Texas at …cannata/pl/Class Notes/ch11.pdf · Murach's Beg. Java with NetBeans, C11 © 2015, Mike Murach & Associates, Inc Slide 1 Chapter](https://reader030.vdocuments.site/reader030/viewer/2022021805/5bae14b409d3f2251e8ca62f/html5/thumbnails/29.jpg)
Murach's Beg. Java with NetBeans, C11 © 2015, Mike Murach & Associates, Inc.
Slide 29
The code for the ProductApp class (cont.) // get the Product object Product p = ProductDB.getProduct(productCode); // display the output System.out.println(); if (p != null) { System.out.println("Description: " + p.toString()); System.out.println("Price: " + p.getPriceFormatted()); } else { System.out.println( "No product matches this product code.\n"); } System.out.println(); System.out.println( "Product count: " + Product.getCount() + "\n");
![Page 30: How to work with inheritance - University of Texas at …cannata/pl/Class Notes/ch11.pdf · Murach's Beg. Java with NetBeans, C11 © 2015, Mike Murach & Associates, Inc Slide 1 Chapter](https://reader030.vdocuments.site/reader030/viewer/2022021805/5bae14b409d3f2251e8ca62f/html5/thumbnails/30.jpg)
Murach's Beg. Java with NetBeans, C11 © 2015, Mike Murach & Associates, Inc.
Slide 30
The code for the ProductApp class (cont.) // see if the user wants to continue System.out.print("Continue? (y/n): "); choice = sc.nextLine(); System.out.println(); } } }
![Page 31: How to work with inheritance - University of Texas at …cannata/pl/Class Notes/ch11.pdf · Murach's Beg. Java with NetBeans, C11 © 2015, Mike Murach & Associates, Inc Slide 1 Chapter](https://reader030.vdocuments.site/reader030/viewer/2022021805/5bae14b409d3f2251e8ca62f/html5/thumbnails/31.jpg)
Murach's Beg. Java with NetBeans, C11 © 2015, Mike Murach & Associates, Inc.
Slide 31
Code that casts Product and Book objects Book b = new Book(); b.setCode("java"); b.setDescription("Murach's Beginning Java"); b.setAuthor("Andrea Steelman"); b.setPrice(49.50); Product p = b; // cast Book object to Product object p.setDescription("Test"); // OK //p.setAuthor("Test"); // not OK Book b2 = (Book) p; // cast Product obj to Book obj b2.setAuthor("Test"); // OK Product p2 = new Product(); Book b3 = (Book) p2; // throws ClassCastException because // p2 is Product object
![Page 32: How to work with inheritance - University of Texas at …cannata/pl/Class Notes/ch11.pdf · Murach's Beg. Java with NetBeans, C11 © 2015, Mike Murach & Associates, Inc Slide 1 Chapter](https://reader030.vdocuments.site/reader030/viewer/2022021805/5bae14b409d3f2251e8ca62f/html5/thumbnails/32.jpg)
Murach's Beg. Java with NetBeans, C11 © 2015, Mike Murach & Associates, Inc.
Slide 32
Code that checks an object’s type Product p = new Book(); // create a Book object if (p instanceof Book) { System.out.println("This is a Book object");
}
The console This is a Book object
![Page 33: How to work with inheritance - University of Texas at …cannata/pl/Class Notes/ch11.pdf · Murach's Beg. Java with NetBeans, C11 © 2015, Mike Murach & Associates, Inc Slide 1 Chapter](https://reader030.vdocuments.site/reader030/viewer/2022021805/5bae14b409d3f2251e8ca62f/html5/thumbnails/33.jpg)
Murach's Beg. Java with NetBeans, C11 © 2015, Mike Murach & Associates, Inc.
Slide 33
How the equals method of the Object class works Both variables refer to the same object Product product1 = new Product(); Product product2 = product1; if (product1.equals(product2)) // returns true
Both variables refer to different objects that store the same data Product product1 = new Product(); Product product2 = new Product(); if (product1.equals(product2)) // returns false
![Page 34: How to work with inheritance - University of Texas at …cannata/pl/Class Notes/ch11.pdf · Murach's Beg. Java with NetBeans, C11 © 2015, Mike Murach & Associates, Inc Slide 1 Chapter](https://reader030.vdocuments.site/reader030/viewer/2022021805/5bae14b409d3f2251e8ca62f/html5/thumbnails/34.jpg)
Murach's Beg. Java with NetBeans, C11 © 2015, Mike Murach & Associates, Inc.
Slide 34
The equals method of the Product class @Override public boolean equals(Object object) { if (object instanceof Product) { Product product2 = (Product) object; if (code.equals(product2.getCode()) && description.equals(product2.getDescription()) && price == product2.getPrice()) { return true; } } return false; }
![Page 35: How to work with inheritance - University of Texas at …cannata/pl/Class Notes/ch11.pdf · Murach's Beg. Java with NetBeans, C11 © 2015, Mike Murach & Associates, Inc Slide 1 Chapter](https://reader030.vdocuments.site/reader030/viewer/2022021805/5bae14b409d3f2251e8ca62f/html5/thumbnails/35.jpg)
Murach's Beg. Java with NetBeans, C11 © 2015, Mike Murach & Associates, Inc.
Slide 35
The equals method of the LineItem class @Override public boolean equals(Object object) { if (object instanceof LineItem) { LineItem li = (LineItem) object; if (product.equals(li.getProduct()) && quantity == li.getQuantity()) { return true; } } return false; }
![Page 36: How to work with inheritance - University of Texas at …cannata/pl/Class Notes/ch11.pdf · Murach's Beg. Java with NetBeans, C11 © 2015, Mike Murach & Associates, Inc Slide 1 Chapter](https://reader030.vdocuments.site/reader030/viewer/2022021805/5bae14b409d3f2251e8ca62f/html5/thumbnails/36.jpg)
Murach's Beg. Java with NetBeans, C11 © 2015, Mike Murach & Associates, Inc.
Slide 36
An abstract Product class package murach.business; public abstract class Product { private String code; private String description; private double price; // regular constructors and methods // for instance variables @Override public String toString() { return description; } // an abstract method public abstract String getDisplayText(); }
![Page 37: How to work with inheritance - University of Texas at …cannata/pl/Class Notes/ch11.pdf · Murach's Beg. Java with NetBeans, C11 © 2015, Mike Murach & Associates, Inc Slide 1 Chapter](https://reader030.vdocuments.site/reader030/viewer/2022021805/5bae14b409d3f2251e8ca62f/html5/thumbnails/37.jpg)
Murach's Beg. Java with NetBeans, C11 © 2015, Mike Murach & Associates, Inc.
Slide 37
A class that inherits the abstract Product class package murach.business; public class Book extends Product { private String author; // regular constructor and methods for the Book class @Override // override the abstract method public String getDisplayText() { return super.toString() + " by " + author; } }
![Page 38: How to work with inheritance - University of Texas at …cannata/pl/Class Notes/ch11.pdf · Murach's Beg. Java with NetBeans, C11 © 2015, Mike Murach & Associates, Inc Slide 1 Chapter](https://reader030.vdocuments.site/reader030/viewer/2022021805/5bae14b409d3f2251e8ca62f/html5/thumbnails/38.jpg)
Murach's Beg. Java with NetBeans, C11 © 2015, Mike Murach & Associates, Inc.
Slide 38
A final class public final class Book extends Product { // all methods in the class are automatically final }
A final method public final String getVersion() { return version; }
A final parameter public void setVersion(final String version) { // version = "new value"; // not allowed this.version = version; }