方法重定向在superclass和baseclass中是如何发生的?
How does method redirection takes place in super class and base class?
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
class 的对象 (A),我需要使用超级 class (A.requestCoupon();
) 请求优惠券。我坚持的是方法 requestCoupon()
调用 Transaction()
方法,如果 A
调用请求方法,它将调用 super class 或 base class?
一旦 Transaction() 方法被覆盖,它将从 GCustomer class 调用。
多态性是根据调用该方法的对象的实际类型动态(在运行时)实施的。它依赖于将 subclass 的对象分配给 superclass.
的引用的能力
此外,请注意,当您在 class 中有一个实例方法并且您在该实例方法中调用另一个方法而不使用显式引用(reference.method()
语法)时,调用是通过隐式 this
引用进行,该引用引用实际进行调用的对象(在本例中,派生的 class)。
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
class 的对象 (A),我需要使用超级 class (A.requestCoupon();
) 请求优惠券。我坚持的是方法 requestCoupon()
调用 Transaction()
方法,如果 A
调用请求方法,它将调用 super class 或 base class?
一旦 Transaction() 方法被覆盖,它将从 GCustomer class 调用。
多态性是根据调用该方法的对象的实际类型动态(在运行时)实施的。它依赖于将 subclass 的对象分配给 superclass.
的引用的能力此外,请注意,当您在 class 中有一个实例方法并且您在该实例方法中调用另一个方法而不使用显式引用(reference.method()
语法)时,调用是通过隐式 this
引用进行,该引用引用实际进行调用的对象(在本例中,派生的 class)。