强制实例实现一个方法

Force instances to implement a method

可以强制派生 classes 来实现特定功能。

现在,是否可以分别对 class 的每个实例执行相同的操作? (可能在调用构造函数时 Java 即时覆盖)

// on-the-fly override sample @Java
progressBar.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {

    }
});

p.s:只有一个 class 我想为其创建一个实例。在这种情况下没有子class。

Interfaces可用于要求所有派生对象实现它们的方法(see this). From the sounds of this though, base.Method() is more of what you're looking for (see this):

internal class A {
    public virtual void DoSomething() { }
}
internal class B : A {
    public override void DoSomething() { base.DoSomething(); }
}

以上内容有助于确保在调用 B.DoSomething 时执行 A.DoSomething 中的代码。

使用 interface 是我所知道的强制派生对象实现方法的唯一方法。

实例无法实现接口,只有 classes 可以。同样在 Java 中,这是不可能的。相反,在从你的 base-class 派生的后面创建了一个匿名 class,它显示为你的 base-class.

的一个实例

要在 C# 中实现类似的功能,您可以使用委托并在 class:

的构造函数中提供它
class MyClass
{
    Action<T> TheAction { get; private set; }
    public MyClass(Action<T> doSomething() { this.TheAction = doSomething; }
}

现在您可以为每个实例提供不同的行为:

var i1 = new MyClass(x => Console.WriteLine(x));
var i2 = new MyClass(x => DoSomething(x));

但是我不明白你为什么需要这个。要为进度条启用点击事件,只需执行以下操作:

myProgressBar.Click += (sender, args) => { /* what ever */ };

或:

myProgressBar.Click += MyMethod;

MyMethod(object sender, EventArgs args) { /* what ever */ }