如何在抽象方法中给出不同的参数?

时间:2013-12-14 14:22:15

标签: java inheritance methods overloading abstract

我有一个抽象类和一个抽象的setter方法,它以String作为参数,但我希望我的一个子类的setter采用另一种类型的参数。

我想在不使用泛型的情况下这样做。

有可能吗?

2 个答案:

答案 0 :(得分:3)

您可以重载子类中的setter:

@Override
public void setProperty(String firstArg) {
   ...
}

public void setProperty(Integer value) {
 ...
}

答案 1 :(得分:0)

你会喜欢在没有泛型的情况下这样做,但我认为你需要它们:

public abstract class MyClass<T> {
    public abstract void setX(T t);
}

public class MySubClass extends MyClass<String> {
    public void setX(String s) {
    }
}

public class MySpecialSubClass extends MyClass<Integer> {
    public void setX(Integer s) {
    }
}