在java中为抽象类创建方法

时间:2015-04-14 02:40:36

标签: java generics methods abstract-class

我正在尝试用Java创建一个抽象类的方法。

说B和C扩展抽象A.

在A中有一个方法void doSomething(???)

我希望B.doSomething(B)能够正常工作,但B.doSomething(C)不应该。我也希望C.doSomething(C)能够正常工作,但C.doSomething(B)不应该。这可能吗?

编辑:我希望在A

中定义方法

编辑2:使用LaShane的答案......

A b = new B();
A c = new C();
b.doSomething(c);//how can I prevent this?

1 个答案:

答案 0 :(得分:3)

您可以这样实现:

abstract class A<T> {
    abstract void doSomething(T obj);
};

class B extends A<B> {

    @Override
    void doSomething(B obj) {
    }

};

class C extends A<C> {

    @Override
    void doSomething(C obj) {
    }

};