![](/img/trans.png)
[英]how can i run an abstract method in Python (child will implement it) and abstract hirrachy
[英]How can I implement an abstract method with parameter as Child class?
ParentClass = {
def execute(ParentParameterClass parentParamaterClass);
}
ChildClass implements ParentClass = {
@override
def execute(ChildParameterClass childParameterClass) = {
print("Hurray")
}
}
ChildParameterClass childParameterClass = new ChildParameterClass()
ParentClass parentClass = new ChildClass()
parentClass.execute(childParameterClass) // prints "Hurray"
仅供参考: ChildParameterClass 是 ParentParameterClass 的孩子
我知道这会失败,因为覆盖会引发错误。
将来可能会有新的子类(如 ChildClass),所以我希望它是可扩展的,因此在 ParentClass 中拥有多个执行方法将不起作用。
有什么办法可以做到这一点吗? 我不想在 ChildClass 中使用 ParentParameterClass,因为我想在与 ChildClass 一起使用时强制用户传递 ChildParameterClass。
我想在 Java 和 Python 中执行此操作
谢谢
如果您尝试传递的参数对象是 state,您只需将其更改为:
...
@override
def execute(ParentParameterClass childParameterClass) = {
print("Hurray")
}
}
ParentParameterClass childParameterClass = new ChildParameterClass()
并让 ChildParameterClass 继承 ParentParameterClass。
另一个选项是使用 generics 允许您将不同的类型传递给方法。
但是,我建议不要通过强制覆盖方法接受完全不同的参数来滥用 inheritance,因为这可能会导致维护问题。 如果参数真的完全不同,请为孩子创建一个新方法。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.