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()
的调用是多余的(会自动调用)。

不清楚您在问什么?一般来说,将相同或超级类型的对象传递到任何您想要的地方都没有问题。你面临的实际问题是什么,你会犯什么样的错误?代码中有什么不起作用?