好的,也许这是一个愚蠢的问题。但我想知道是否可以用Java完成这个任务。
abstract public class ParentClass<T> {
abstract public T getTest();
}
在子类中
public class SubClass extends ParentClass<MyObject> {
public MyObject getTest() {
// I can return the object with class MyObject
return null;
}
}
我的问题是,我能在子方法中返回类类型吗?我的意思是,在ParentClass中添加一些代码,这样我就可以像下面这样做吗?
例如:
public class Sub1Class extends parentClass<Object1> {
public Object1 getTest() { }
// I want to have a method that return it's class in the superclass
public Sub1Class getItClassObject() { }
}
其他例子
public class Sub2Class extends parentClass<Object2> {
public Object2 getTest() { }
// I want to have a method that return it's class in the superclass
public Sub2Class getItClassObject() { }
}
再举一个例子
public class Sub3Class extends parentClass<Object3> {
public Object3 getTest() { }
// I want to have a method that return it's class in the superclass
public Sub3Class getItClassObject() { }
}
如果您看到Sub1Class、Sub2Class和Sub3Class中的getItClassObject方法,它们将遵循其类。但我不想为每个子类添加相同的方法,只想在ParentClasss中添加一些代码(如果可行),这样在子类中,我只需直接调用getItClassObject而无需在每个子类中编写所有代码。
通常我会像这样在ParentClass中添加方法。
abstract public class ParentClass<T> {
abstract public T getTest();
public Object getItClassObject() { }
}
所以在子类中,我只需实例化该类,但我仍然需要再次转换 :(
Sub1Class sub1Class = new Sub1Class();
Sub1Class after1Cast = (Sub1Class) sub1Class.getItClassObject();
Sub2Class sub2Class = new Sub2Class();
Sub2Class after2Cast = (Sub2Class) sub2Class.getItClassObject();
我认为这在Java中无法完成。但我不知道是否有解决此问题的线索。谢谢。