で同じクラスの抽象と静的メソッドを持つことはできません、私は次のクラスを持っている:は、なぜ私は、Java
public abstract class A
{
public abstract String doSomething(String X, String Y);
public static String doSomething(String X, String Y){return X + Y;}
...
}
私が持っている問題は、静的および抽象doSomething()
方法は重複として衝突するように見えるということです。静的メソッドはクラスのインスタンスではなくクラスに属しているので、これはうまくいくはずだと思ったので、抽象メソッドを使ってすべてのサブクラスでメソッドを実行し、静的メソッドをヘルパーとして強制して、ファクタリングされたコード。
おそらく、私はミックスにインターフェイスを追加することができますが、同じクラスに存在する抽象メソッドと静的メソッドの何が問題なのかは分かりません。これには何が問題なのですか?
わずかに明確にするために:コンパイラは、ランタイムではなく、どのメソッドを呼び出すかを把握する必要があります。 – ruakh
静的メソッドをオーバーライドすることはできません。あなたはできる? –
@srikanthradix:いいえ、静的メソッドはオーバーライドできません。 – maerics