class T{
void f(int x){ System.out.println("int in T:" +x); } void f(double x){ System.out.println("double in T:"+x); } void f(Object x){ System.out.println("Object in T:" +x); }}class S extends T{
void f(int x){ //子类覆盖基类方法 System.out.println("int in S:" +x); } void f(float x){ System.out.println("float in s:" +x); }} public class quest3{ public static void main(String[] args) { T t=new S(); // t编译时类型 调用 T的方法 并判断子类是否有覆盖 t.f(20); // 基类方法被子类覆盖 输出子类 int in s t.f(20L); //基类方法 t.f(3.5f); //基类方法 t.f(3.5); //基类方法 t.f("abcdef"); //基类方法 }}
输出结果:
int in S:20
double in T:20.0double in T:3.5double in T:3.5Object in T:abcdef