题号1:校园里的人的继承层次结构
为校园里的人构建一个继承层次结构,包括教职工及学生。他们有何共同之处?又有何区别?
答:构建校园里的人的继承层次结构时,可以从最基本的共同特征开始定义一个基类(超类),例如,可以将所有人定义为Person
类。接着,根据不同人群的特点继续派生出如Staff
(教职工)和Student
(学生)这样的子类。不同类的人除了继承通用的属性和方法外,还可以拥有自己独特的属性和行为。
基类 - 校园里的所有人(Person)
- 共同属性:他们都有一些共同的属性,如姓名(Name),年龄(Age),性别(Gender)和身份证号(ID)等。
- 共同行为:比如,他们都可以被问候(一个
greet
方法),都可能有个人简介(introduce
方法)等。
子类 - 教职工(Staff):
- 独特属性:职位(Position),工作部门(Department),教职工号(Staff ID)
- 独特行为:教授课程(
teach
方法),参与会议(attendMeeting
方法)等
子类 - 学生(Student):
- 独特属性:学号(Student ID),所在年级(Grade),主修专业(Major)
- 独特行为:选课(
enrollCourse
方法),参加考试(takeExam
方法),查询成绩(checkGrades
方法)等
题号2:银行账户的继承层次结构
为银行账号构建一个继承层次结构。
答:在构建银行账号的继承层次结构时,可以从最基本的银行账号特征出发定义一个基类,比如BankAccount
。然后,根据各种不同类型的账号特性来定义子类,例如储蓄账号(SavingsAccount
)和信用卡账号(CreditAccount
)等。不同类型的银行账户除了继承通用的属性和方法外,还可以拥有自己独特的属性和行为。
(这里只是一个思路,不用太纠结信用卡和储蓄的真实区别哈~因为可能有的信用卡支持取款)
基类 - 银行账号(BankAccount):
- 共同属性:账号(Account Number),持有者姓名(Holder Name),账户余额(Balance)
- 共同行为:密码验证(Password verification),电子访问(Electronic access)
子类 - 储蓄账号(SavingsAccount):
- 独特属性:取款(Withdraw)
- 独特行为:赚取利息(Earning interest)、转账(Transfer accounts)
子类 - 信用卡账号(CreditAccount):
- 独特属性:超过信用额度的罚金(Penalty for credit limit)
- 独特行为:短期贷款(Short term loans),支付利息(Payment of interest)
题号3:计算机的继承层次机构
为不同类型的计算机构建一个继承层次结构。
答:在构建计算机的继承层次结构时,可以从最基本的共同特征出发定义一个基类(Base Class),比如Computer
。接着,根据不同类型的计算机特点继续派生出例如DesktopComputer
、LaptopComputer
、ServerComputer
等子类。这样的层次结构不仅能够清楚地展示不同计算机类型之间的共同之处和区别,还能使代码更加模块化,易于理解和维护。
基类 - 计算机(Computer):
- 共同属性:处理器(Processor),内存大小(RAM),存储空间(Storage)
- 共同行为:开机(power on),关机(power off),执行程序(run program)
子类 - 台式计算机(DesktopComputer):
- 独特属性:是否包含外设(如键盘、鼠标、显示器)
- 独特行为:可能包括特定于台式机的功能,如支持多显示器
子类 - 笔记本电脑(LaptopComputer):
- 独特属性:电池寿命(Battery Life),重量(Weight)
- 独特行为:睡眠模式(sleep mode)