在完成一项学校作业时,我有一个抽象类 Person,一个扩展 Person 的抽象类 Student,以及一个扩展 Student 的普通类 CollegeStudent。CollegeStudent 从文件中读取并设置所有变量(包括那些属于抽象超类的变量)。这一切都很好。
但是,我们应该在抽象类中有构造函数,这使事情变得复杂,因为这些类特别不应该能够自己读取输入。所以现在我有一种情况,我(大概)应该使用构造函数来设置它们各自类中的数据字段,但我当然需要先读取输入!这里明显的问题是超构造函数调用必须是CollegeStudent的构造函数中的第一件事。这就是问题。
我可以让一切按原样运行,然后有另一个构造函数方法,它可以将所有需要的字段作为参数。但我不明白这有什么意义——为什么驱动程序创建 CollegeStudent 对象然后再次创建它(使用第一个对象中的变量)只是为了使用构造函数?
除此之外,我不知道如何做到这一点,而且这个选项对我来说很奇怪——我不明白重点是什么。
提前致谢...