public class OverrideDemo003{
public static void main(String[] args){
Child c=new Child();
c.test();
}
}
//从往上找,不是向下找
class Parent{
void test01(){
System.out.println("parent test01。。。。");
}
void test(){
this.test01();//子类
this.add(1.0f,2.0); //没有重写,找适合的方法
this.add(1.0f); //父类
//this.printNew(); //子类新增方法,无法调用
}
int add(int a,int b){
return a+b;
}
//类型必须一致
double add(double a,double b){
System.out.println("parent add(double a,double b)");
return a+b;
}
//不构成重写形式参数的类型必须一致
int add(double a){
System.out.println("parent add(float a)");
return 1;
}
}
class Child extends Parent{
void test01(){
System.out.println("child test01。。。。");
}
//重写形式参数的名称与重写没有任何的关系
int add(int b,int a){
return b+a;
}
//类型必须一致,只是定义了新方法而已
double add(float a,double b){
System.out.println("child add(double a,double b)");
return a+b;
}
//不构成重写,形式参数的类型必须一致,只是定义了新方法而已
int add(float a){
System.out.println("child add(float a)");
return 1;
}
}
请问为什么结果调用的都是父类的方法 子类虽然没有重写 但是子类也有满足条件的方法啊 为什么不运行 请详细解释下 谢了
|
|