gpt4 book ai didi

java - Core Java 中的继承

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:23:37 25 4
gpt4 key购买 nike

对于我的家庭作业,我们的任务是“声明一个由四名“普通”大学员工、三名教职员工和七名学生组成的数组。提示用户指定要输入的数据类型 (C,F,S)或退出选项 (Q)。当用户继续时,接受适当人员的数据输入。如果用户输入的每个人类型的数量超过指定数量,则显示错误消息。当用户退出时,显示有关在适当的标题下列出每组人员的屏幕。如果用户在 session 期间没有为一种或多种类型的人员输入数据,则在适当的标题下显示适当的消息。”

    Class           | Extends         | Variables
--------------------------------------------------------
Person | None | firstName, lastName, streetAddress, zipCode, phone
CollegeEmployee | Person | ssn, salary,deptName
Faculty | CollegeEmployee | tenure(boolean)
Student | person | GPA,major

看完Tutorials关于继承和拖延一堆继承讨论,我认为我在纸上说得对,但在我深入研究不起作用的代码之前,我更喜欢一些输入。 :)

我在定义

Person[x] = new Student();

(或 FacultyCollegeEmployee )。

Person类具有 Person 的所有输入字段,并且子类只有附加数据(例如, majorStudent 的情况下)。

当我创建 new Student(); People 中的输入字段和 Student我可以上课,因为Student延伸People以及 Student 中定义的附加变量附加到 Person 的定义中对于那个例子。

当需要从数组中提取数据时,Java 将其视为 Person 的数组, 所以我需要添加逻辑

if Person[x] instanceof Student (or `Faculty` or `CollegeEmployee`)

Person 的类型执行适当的操作.我的感觉是 instanceof用于覆盖(在本例中为追加)Java 对 Person 的了解类在输出端。

我是否遗漏了对此的任何批判性理解?

最佳答案

不仅有继承,还有多态——只需将输入和验证对象数据所需的代码放在对象的方法中(比如:inputMyData() 亲自覆盖基方法,可能调用父类(super class)的方法)——这样你就可以避免instanceof 和类型转换。

关于java - Core Java 中的继承,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9956258/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com