我正在处理的作曲家包有问题。它实现了一个特性计费。
trait Billable
{
/**
* Update the payment method token for all of the user's subscriptions.
*
* @param string $token
* @return void
*/
protected function updateSubscriptionsToPaymentMethod($token)
{
foreach ($this->subscriptions as $subscription) {
if ($subscription->active()) {
BraintreeSubscription::update($subscription->braintree_id, [
'paymentMethodToken' => $token,
]);
}
}
}
}
我试图在我的类中重写此方法
class Organisation extends Model
{
use Billable;
/**
* Update the payment method token for all of the user's subscriptions.
*
* @param string $token
* @return void
*/
protected function updateSubscriptionsToPaymentMethod($token)
{
foreach ($this->subscriptions as $subscription) {
if ($subscription->active()) {
BrntreeSubscription::update($subscription->braintree_id, [
'paymentMethodToken' => $token,
]);
}
}
}
}
但是该方法没有被重写。作为测试,我覆盖了一些公共功能,它们运行良好,这是特征的限制吗?我试图在网上找到答案,但没有找到。
我试图重写这个函数,因为我需要自定义BraintreeSubcript类的行为。
任何帮助都将不胜感激。
在您的类中,您可以执行以下操作:注意,在函数名之前的T可以将其更改为别名。
use billable {
updateSubscriptionsToPaymentMethod as tUpdateSubscriptionsToPaymentMethod;
}
然后简单地在类中添加所需的函数:
public function updateSubscriptionsToPaymentMethod(){
...
}
当我用公共方法重写受保护的方法时,Java编译器不会抱怨。这里到底发生了什么?由于父方法的可见性较低,它是覆盖还是隐藏父方法?
问题内容: 我想模拟一个继承的受保护方法。我不能直接从Java代码中调用此方法,因为它是从另一个包中的类继承的。我找不到指定此方法存根的方法 我查看了重写,这似乎它们仅用于私有方法! 如何指定保护方法? 问题答案: 果壳:不能总是用来对间谍进行打桩;使用。 假设静态导入和(两者): 您也可以设置on 。哪个更有意义取决于实际测试。
问题内容: 关键字授予对相同包和子类(http://java.sun.com/docs/books/tutorial/java/javaOO/accesscontrol.html)中的类的访问权限。 现在,每个类都有一个超类(http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html)。 因此,我得出结论,即使每个类都可以访问的方法。
根据这本在线书籍,C#中的关键字不能防止重排序写操作后跟读操作。它给出了这个例子,其中和最终都可以设置为,尽管和是: 这似乎符合10.5.3中的规范: 对易失性字段的读取称为易失性读取。易失性读取具有“获取语义”;也就是说,在指令序列中,它保证发生在对内存的任何引用之前,而对内存的任何引用发生在它之后。 对易失性字段的写入称为易失性写入。易失性写入具有“释放语义”;也就是说,它保证在指令序列中写入
更新:我并不是唯一一个思考这个问题的人,它似乎确实是一个错误。看这里。这一天是固定的将是一个梦幻般的一天!:) 这是从
问题内容: 如何在受保护的python类中定义一个方法,只有子类才能看到它? 这是我的代码: 我只希望看到的方法的子类。 问题答案: Python不像C ++ / Java / C#支持访问保护。一切都是公开的。座右铭是:“我们都是成年人。” 记录下您的课程,并坚持要求您的合作者阅读并遵守文档。 Python的文化是,以下划线开头的名称意味着:“除非您真正知道应该使用这些名称,否则请不要使用它们。