40、面向对象编程:多重继承与语言特性剖析

面向对象编程:多重继承与语言特性剖析

1. 多重继承概述

在面向对象编程中,有时派生类从多个基类继承特性会很有用。例如,在管理计算系统里,若要将同一年份的学生(大一、大二、大三、大四、未入学)放在某个列表中,可让 student 类同时从 person gp_list_node 类派生。

在 C++ 中,代码如下:

class student : public person, public gp_list_node { ...

在 Eiffel 中,声明类似:

class student
inherit
    person
    gp_list_node
feature
    ...

这样, student 类的对象就会拥有 person gp_list_node 类的所有字段和方法。

多重继承在 CLOS 和 Python 中也存在。而 Simula、Smalltalk、Objective - C、Modula - 3、Ada 95 和 Oberon 仅支持单继承。Java、C# 和 Ruby 提供了有限的“混合”形式的多重继承,其中只有一个父类可以有字段。

1.1 多重继承带来的问题

多重继承引入了大量语义和实际

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值