【发布时间】:2017-07-11 08:20:26
【问题描述】:
我有一个扩展类,它需要使用父类中变量的扩展版本。到目前为止,我一直在像这样使用它:
public class ParentClass
{
protected ParentVariable variable;
public ParentClass(){
this.variable = new ParentVariable();
}
....
}
public class ChildClass extends ParentClass
{
public ChildClass(){
super();
this.variable = new ChildVariable();
//Where ChildVariable Extends ParentVariable
....
}
}
只要每次我使用变量时我都会将其转换为 ChildVarible,这或多或少会起作用,但这很丑陋并且会引发一些问题。有没有更好的方法来执行此操作?谢谢。
【问题讨论】:
-
不清楚:如果超类中的所有方法在子类中也是可见的,为什么还要一直转换它。
-
ChildClass中定义的变量在哪里?
-
@EugeneS 我认为 OP 在他的代码中忘记提及
ChildClassextendsParentClass。 -
假设
ChildVariable扩展ParentVariable那么您可以将ParentClass参数化为class ParentClass<T>,将变量定义为T variable。然后做class ChildClass extends ParentClass<ChildVariable>
标签: java inheritance parent-child extends