Java 如何创建接受父类和其他几个对象的子类?
鉴于这些:Java 如何创建接受父类和其他几个对象的子类?,java,Java,鉴于这些: Mark firstStudent = new Mark(...) Mark firstStudentChecked = new VerifiedMark(firstStudent, object a, object b) 对象a和b可以是任何其他对象。以上只是一个示例代码来表达我的想法。我知道VerifiedMark可能是Mark的子类,因此可以将其标记为“VerifiedMark”。但是我们如何构造子类VerifiedMark的构造函数呢?通常,我们会使用super(…),但
Mark firstStudent = new Mark(...)
Mark firstStudentChecked = new VerifiedMark(firstStudent, object a, object b)
对象a和b可以是任何其他对象。以上只是一个示例代码来表达我的想法。我知道VerifiedMark可能是Mark的子类,因此可以将其标记为“VerifiedMark”。但是我们如何构造子类VerifiedMark的构造函数呢?通常,我们会使用super(…),但这里子类的参数是父类的对象。您可以为父类定义另一个版本的构造函数(其作用类似于复制构造函数)。比如说,
class Mark {
Object member;
public Mark(Object m) {
// this is regular constructor
member = m;
}
public Mark(Mark m) {
// this is copy constructor
member = m.member;
}
}
现在,您可以定义如下所示的VerifiedMark:
class VerifiedMark extends Mark {
Object memberA, memberB;
public VerifiedMark(Mark m, Object a, Object b) {
super(m); // calling copy-constructor
memberA = a;
memberB = b;
}
}
我猜
VerifiedMark
充当标记的包装器。在这种情况下,子类应该包含对超类的引用,如下所示:
类验证标记扩展标记{
马克m;
对象a、b;
公开验证标记(标记m,对象a,对象b){
这个,m=m;
这个a=a;
这个.b=b;
}
}
给定OP的代码,VerifiedMark
构造函数不采用标记
构造函数采用的参数,因此对super()
的调用是多余的(会自动调用)。不清楚您在问什么?一般来说,将相同或超级类型的对象传递到任何您想要的地方都没有问题。你面临的实际问题是什么,你会犯什么样的错误?代码中有什么不起作用?