该数组具有来自不同子类的对象。如何根据那里的子类打印对象?
我使用扫描仪读取学生(研究生和本科生)对象并放入数组中。
我需要使用inheritance和toString方法来获取结果。 txt文件中的原始数据:
G史蒂夫23生物学
U Julia 19音乐长笛,年份:大二
G大卫25数学
我只能按原始顺序读取和打印对象: 研究生姓名:史蒂夫(Steve),年龄:23岁,主修:生物学
本科名称:朱莉娅,年龄:19,主修:音乐,年份:大二
毕业生姓名:Dvid,年龄:25,主修:数学
下面是我在测试器文件中使用的方法:
ArrayList studentList = new ArrayList<>(); Student s = new Undergraduate(type,name,major,year); studentList.add(s); Student s = new Graduate(type,name,major); studentList.add(s);
for (Student d:studentList) { System.out.println(d.toString()); } ===预期结果:===
本科生数:1
姓名:朱莉娅(Julia),年龄:19,主修:音乐,年份:大二
研究生人数:2
姓名:史蒂夫(Steve),年龄:23岁,专业:生物学
姓名:Dvid,年龄:25岁,专业:数学
最简单的方法是创建两个单独的ArrayList:一个用于本科生,一个用于研究生:
ArrayList undGrdStudentList = new ArrayList<>(); ArrayList grdStudentList = new ArrayList<>(); if ("U".equals(type)){ Student s = new Undergraduate(type,name,major); undGrdStudentList.add(s); }else{ Student s = new Graduate(type,name,major); grdStudentList .add(s); }
System.out.println("Number of Undergraduate Students: " + undGrdStudentList.size()); for (Student d:undGrdStudentList) { System.out.println(d.toString()); }
System.out.println("Number of Graduate Students: " + grdStudentList .size()); for (Student d:grdStudentList ) { System.out.println(d.toString()); }
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。