在一个学校任务上工作时,我有一个抽象类Person,一个抽象类Student以及一个扩展Person的普通类CollegeStudent。 CollegeStudent从文件中读取并设置所有变量(包括属于抽象超类的那些变量)。所有这些工作正常。超级()难题
但是,我们应该在抽象类中有构造函数,这会使事情变得复杂,因为这些类别本身不应该能够自己读取输入。所以现在我有一种情况,我(大概)应该使用构造函数来设置它们各自类中的数据字段,但我当然需要先读取输入!这里显而易见的问题是superconstructor调用必须是CollegeStudent的构造函数中的第一件事。这就是问题。
我可以让一切按原样运行,然后有另一个构造函数方法,它可以将所有需要的字段作为参数。但是我不明白这一点是什么 - 为什么驱动程序创建CollegeStudent对象,然后为了使用构造函数而再次创建它(使用第一个对象的可读对象)?
除此之外,我不知道如何做到这一点,这个选项对我来说很奇怪 - 我没有看到重点。
在此先感谢...
我觉得这个问题很难理解。 –
主要问题是设计:构造函数不应该读取文件。这不是一个构造函数的工作。改用工厂方法。 –
当我们不知道任务的任意约束是什么时,很难提供帮助。 – climbage