38、面向对象编程的类与方法设计解析

面向对象编程的类与方法设计解析

在面向对象编程里,多态和继承是两个极为关键的概念。多态要求同名方法实现相同的通用操作,即语义一致。而继承则允许开发者通过复用先前定义的类作为新类的基础,逐步定义新类。

1. 继承机制

继承机制主要分为单继承和多继承。单继承允许子类只有一个父类,目前所有面向对象的方法、数据库和编程语言都支持通过单继承扩展父类的定义。

然而,部分面向对象的方法、数据库和编程语言允许子类重新定义父类的部分或全部属性和方法,这就可能引发继承冲突。例如,Doctor 是 Employee 的子类,二者都有 ComputePay() 方法,这就造成了继承冲突。而且,当父类的定义被修改时,所有子类都会受到影响,可能会引入更多的继承冲突。

以下是一些可能出现的情况:
- 方法继承取消 :开发者可以通过在子类中放置存根来取消方法的继承,但如果这种取消是为了正确定义子类,那么很可能子类的分类有误,即继承了错误的父类。
- 继承冲突的原因 :大多数继承冲突是由于子类在继承层次中的分类不当,或者实际的继承机制违反了封装和信息隐藏原则。
- 解决继承冲突的准则
- 不要重新定义查询操作。
- 重新定义继承方法的方法应仅限制继承方法的语义。
- 永远不要改变继承方法的底层语义。
- 永远不要改变继承方法的签名(参数列表)。

不过,许多现有的面向对象编程语言会违反这些准则。在实现设计时,不同的编程语言处理继承冲突的方式也各不相同,因此了解所选编程语言的支持情况非常重要。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值