好吧,也许这是一个愚蠢的问题.但是我只是想知道这是否可以在Java中完成.
abstract public class ParentClass {
abstract public T getTest();
}
在子类中
public class SubClass extends ParentClass {
public MyObject getTest() {
// I can return the object with class MyObject
return null;
}
}
我的问题是我可以在子方法中返回类类型吗?我的意思是,是否可以通过在ParentClass中添加一些代码来完成,所以我可以在下面执行此操作?
例如
public class Sub1Class extends parentClass {
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 {
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 {
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 {
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中完成.但我不知道是否有解决此问题的线索.谢谢