Java 如何传递祖父母对象以调用父方法

Java 如何传递祖父母对象以调用父方法,java,inheritance,Java,Inheritance,由于C和B都是扩展类A,在这种情况下,您可以将类A、B或C的实例传递给aMethod因为C和B都是扩展类A,在这种情况下,如果调用方法aMethod(),您可以传递类A、B或C的实例,B或C,因为所有这些类都直接或间接继承了类A 但是,如果要重写方法aMethod(),则必须传递与类B中定义的方法相同类型的参数,作为重写手段(如中所述)—— 子类中的实例方法与超类中的实例方法具有相同的签名(名称,加上其参数的编号和类型)和返回类型,则会覆盖超类的方法 如果调用方法aMethod(),则可以传递类

由于C和B都是扩展类A,在这种情况下,您可以将类A、B或C的实例传递给
aMethod

因为C和B都是扩展类A,在这种情况下,如果调用方法aMethod(),您可以传递类A、B或C的实例,B或C,因为所有这些类都直接或间接继承了类A

但是,如果要重写方法aMethod(),则必须传递与类B中定义的方法相同类型的参数,作为重写手段(如中所述)——

子类中的实例方法与超类中的实例方法具有相同的签名(名称,加上其参数的编号和类型)和返回类型,则会覆盖超类的方法


如果调用方法aMethod(),则可以传递类A、B或C的实例,因为所有这些类都直接或间接继承类A

但是,如果要重写方法aMethod(),则必须传递与类B中定义的方法相同类型的参数,作为重写手段(如中所述)——

子类中的实例方法与超类中的实例方法具有相同的签名(名称,加上其参数的编号和类型)和返回类型,则会覆盖超类的方法


由于B和c都扩展了A,所以可以将A、B或c的实例传递给引用A的对象

    Class C extends B {
       public void aMethod(A a){
          //Method Definition here
       }
    }
可以将子类对象指定给父类对象

Parent p=new Child()
这里的儿童班是B班和C班。
父母是一个

上述代码的输出为:
类集合。A
类集合
类集合.C

如果你问的是关于重写的问题,那么只有一个方法,因此它不会重写任何东西。将对象作为参数传递与调用方法无关。方法是根据其运行时对象调用的,因此要真正回答您的问题,您需要调用
new B().aMethod(new a())这将使用granparent对象作为参数调用B类方法


由于B和c都扩展了A,所以可以将A、B或c的实例传递给引用A的对象

    Class C extends B {
       public void aMethod(A a){
          //Method Definition here
       }
    }
可以将子类对象指定给父类对象

Parent p=new Child()
这里的儿童班是B班和C班。
父母是一个

上述代码的输出为:
类集合。A
类集合
类集合.C

如果你问的是关于重写的问题,那么只有一个方法,因此它不会重写任何东西。将对象作为参数传递与调用方法无关。方法是根据其运行时对象调用的,因此要真正回答您的问题,您需要调用
new B().aMethod(new a())这将使用granparent对象作为参数调用B类方法


您是否试图覆盖
C
中的
aMethod()
?如果是这样的话,您别无选择,只能选择
a
。不,我不是在尝试重写,而是在调用父类的方法。您是在尝试重写
C
中的
aMethod()
?如果是这样的话,你别无选择,只能选择
a
。不,我不是在试图重写,而是调用父类的方法。
    class A {

}

class B extends A {
    public void aMethod(A a){
System.out.println(a.getClass());
    }
}

class C extends B {

   public static void main(String[] ar){
       new C().aMethod(new A()) ;
       new C().aMethod(new B()) ;
       new C().aMethod(new C()) ;

   }      /* C has IS a relationship with both A , B and C */

}