在 java 中为抽象 class 创建方法

Creating a method for an abstract class in java

我正在尝试为 Java 中的抽象 class 创建一个方法。

假设 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?

你可以这样实现:

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) {
    }

};