50 lines
1.0 KiB
Java
50 lines
1.0 KiB
Java
// polymorphism/Sandwich.java
|
|
// ©2016 MindView LLC: see Copyright.txt
|
|
// We make no guarantees that this code is fit for any purpose.
|
|
// Visit http://mindviewinc.com/Books/OnJava/ for more book information.
|
|
// Order of constructor calls.
|
|
package polymorphism;
|
|
|
|
class Meal {
|
|
Meal() { System.out.println("Meal()"); }
|
|
}
|
|
|
|
class Bread {
|
|
Bread() { System.out.println("Bread()"); }
|
|
}
|
|
|
|
class Cheese {
|
|
Cheese() { System.out.println("Cheese()"); }
|
|
}
|
|
|
|
class Lettuce {
|
|
Lettuce() { System.out.println("Lettuce()"); }
|
|
}
|
|
|
|
class Lunch extends Meal {
|
|
Lunch() { System.out.println("Lunch()"); }
|
|
}
|
|
|
|
class PortableLunch extends Lunch {
|
|
PortableLunch() { System.out.println("PortableLunch()");}
|
|
}
|
|
|
|
public class Sandwich extends PortableLunch {
|
|
private Bread b = new Bread();
|
|
private Cheese c = new Cheese();
|
|
private Lettuce l = new Lettuce();
|
|
public Sandwich() { System.out.println("Sandwich()"); }
|
|
public static void main(String[] args) {
|
|
new Sandwich();
|
|
}
|
|
}
|
|
/* Output:
|
|
Meal()
|
|
Lunch()
|
|
PortableLunch()
|
|
Bread()
|
|
Cheese()
|
|
Lettuce()
|
|
Sandwich()
|
|
*/
|