以下问题已在 GATE CS 考试中提出。
1. 希望为公司设计一个面向对象的员工记录系统。每个员工都有一个姓名、唯一的 ID 和薪水。员工属于不同的类别,他们的工资由他们的类别决定。需要获取 Name、getld 和计算工资的函数。鉴于下面的类层次结构,这些功能的可能位置是:(GATE CS 2004)
一世。 getld 在超类中实现
ii. getld 在子类中实现
三、 getName 是超类中的抽象函数
四、 getName 在超类中实现
v. getName 在子类中实现
六. getSalary 是超类中的抽象函数
七. getSalary 在超类中实现
八. getSalary 在子类中实现
选择最佳设计
(a) (i), (iv), (vi), (viii)
(b) (i), (iv), (vii)
(c) (i)、(iii)、(v)、(vi)、(viii)
(d) (ii), (v), (viii)
答案(一)
Getid() 和 GetName() 可以在基类中,因为这些函数对所有子类都有相同的实现。正如问题所说,每个员工都必须有薪水,薪水由他们的类别决定,因此 getSalary() 必须作为基类中的抽象函数存在。并且所有子类都应根据其类别实现工资。
2. 以下哪一项是面向对象编程语言的基本特征? (GATE CS 2005)
(i) 抽象和封装
(ii) 严格类型
(iii) 类型安全属性与子类型规则相结合
(iv) 存在继承的多态性
(a) (i) 和 (ii) 仅
(b) (i) 和 (iv) 仅
(c) (i), (ii) 和 (iv) 只
(d) 仅 (i)、(iii) 和 (iv)
答案(二)
抽象、封装、多态和继承是 OOP 语言的基本特征(请参阅 OOP 的 Wiki 页面)。
请参阅 GATE Corner 了解所有往年论文/解决方案/解释、教学大纲、重要日期、笔记等。