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.0
double in T:3.5
double in T:3.5
Object in T:abcdef