java—方法重定向是如何在超类和基类中发生的?

chhkpiq4  于 2021-07-13  发布在  Java
关注(0)|答案(2)|浏览(334)
class HouseHold extends Customer {

    public void requestCoupon() {
        Transaction();
        CouponCount = 20;
    }

    public double Transaction () {
        Payment += CouponPayment;
        return Payment;
    }
}

class GCustomer extends HouseHold { 

      public double Transaction () {
        Payment += DisCPayment;
        return Payment;
    }
}

我正在制作一个物体 GCustomer 我需要使用超级班级申请优惠券( A.requestCoupon(); ). 我所坚持的是 requestCoupon() 呼叫 Transaction() 方法和if A 调用请求方法它会调用超类中的方法还是基类中的方法?

j9per5c4

j9per5c41#

多态性是基于调用方法的对象的实际类型动态地(在运行时)实施的。它依赖于将子类的对象分配给超类的引用的能力。
另外,请注意,如果类中有一个示例方法,并且在该示例方法中调用另一个方法而不使用显式引用(即 reference.method() 语法),然后通过隐式 this 引用,它引用实际进行调用的对象(在本例中是派生类)。

gcuhipw9

gcuhipw92#

一旦方法transaction()被重写,它将从gcustomer类调用。

相关问题