在 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) {
}
};
我正在尝试为 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) {
}
};