我有这种情况
class Parent {
int data;
public Parent(int data) {
this.data = data;
}
}
class Child extends Parent {
int childData;
public Child(int data, int childData) {
super(data);
this.childData = childData;
}
}
我手头有一个Parent
. 我想向childData
它添加功能。我最近一直在用 Javascript 编程,这很简单,我在精神上移植了设计模式,却没有意识到这在 Java 中是不平凡的。
假设我可以完全控制Child
类代码,这样做的最佳做法是什么?我可以在不克隆的情况下做到这一点吗?是否需要修改Parent
类才能使其正常工作?
当然在最坏的情况下(这听起来很糟糕)有这个解决方案:
new Child(parent.data, childData);
由于Parent
的数据都是公开的。
具体问题(我倾向于忘记包含在 Java 问题中)是我有一个Config.testUser
返回用户的方法,我想向它添加一个数据以使其成为InitialScanUser
,这是一个添加User
了initialScanAlgorithm
类型数据的a InitialScanAlgorithm
。 Config.testUser
生活在一个不能依赖的包中InitialScanAlgorithm
。