/**
* This code is from the book:
* Winder, R and Roberts, G (1998)
* Developing Java Software</em>
* John Wiley & Sons.
* It is copyright (c) 1997 Russel Winder
* and Graham Roberts.
*/
class Superclass{
private static String name = "Superclass";
public void test(int i){
System.out.println("Superclass test(int): " + i);
}
public void test(double i){
System.out.println("Superclass test(double): " +
i);
}
public String getName(){
return name;
}
}
class Subclass extends Superclass{
private static String name = "Subclass";
public void test(float i){
System.out.println("Subclass test(float): " + i);
}
public void test(int i){
System.out.println("Subclass test(int): " + i);
}
public String getName(){
return name;
}
}
class l1Inherit5{//Call1
public static void main(String[] args){
Superclass[] objs = new Superclass[5];
objs[0] = new Superclass();
objs[1] = new Subclass();
objs[2] = new Superclass();
objs[3] = new Subclass();
objs[4] = new Subclass();
for (int i = 0; i < 5; i++){
System.out.println(objs[i].getName());
objs[i].test(1);
objs[i].test(1.0F);
}
((Subclass)objs[1]).test(1.0F);
}
}
/******** sample compilation & run *******
# javac l1Inherit5.java
# java l1Inherit5
Superclass
Superclass test(int): 1
Superclass test(double): 1.0
Subclass
Subclass test(int): 1
Superclass test(double): 1.0
Superclass
Superclass test(int): 1
Superclass test(double): 1.0
Subclass
Subclass test(int): 1
Superclass test(double): 1.0
Subclass
Subclass test(int): 1
Superclass test(double): 1.0
Subclass test(float): 1.0
#
******************************************/