【发布时间】:2009-12-29 02:42:36
【问题描述】:
我想知道是否有像方法继承而不是整个类继承的任何特性,让我详细说明一下我要解释的内容:
class a {
public void GetA(){
// some logic here
}
}
class b {
public void GetB() : new Class().GetA()
}
我知道这看起来很奇怪,但我正在阅读如何在对象组合模式中进行委托,并且出于某种原因我想到了这种模式。
【问题讨论】:
-
其实我不是在问是否存在相同的方法,也许在 C# 中有另一种方法可以提供更好和有效的解决方案。但是整个类的继承并不是我要的。
-
有没有实现这个的语言?
-
@GrayWizardx 当然,这种类型的事情在许多具有一流对象功能的语言中都是可能的。我知道 Python 和 JavaScript 允许你做这种事情。
-
您希望 GetB() 调用 GetA(),还是更改 GetA() 的行为?
-
@TM 他们实际上让你这样做吗?或者你只是得到 GetB() { return (new Class()).GetA(); 的编译器语义吗? },我问是因为在继承方面,在使用方面,“方法继承”和“虚拟方法调用”之间存在很大差异,如果“a”具有静态初始化或运行时设置,请考虑副作用。
标签: c# object-composition