A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 王震 中级黑马   /  2013-6-5 22:10  /  1848 人查看  /  10 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

我想问一下,一个类可不可以同时继承多个类啊?

评分

参与人数 1技术分 +1 收起 理由
苏波 + 1

查看全部评分

10 个回复

倒序浏览
一个类只能继承一个类,但可以实现(可以理解为继承)多个接口interface,这是C#的硬性规定
其实一个类继承多个类没有意义的,仔细想想,类用来描述一件事物,同时继承多个类的话
就造成了混乱。  虽然不能继承多个。但可以隔代继承,因为所有的类都继承自Object类,同理。

评分

参与人数 1技术分 +1 收起 理由
苏波 + 1

查看全部评分

回复 使用道具 举报
本帖最后由 无__畏 于 2013-6-5 22:26 编辑

一个类只能继承一个基类,但可以实现多个接口!
简单举例...

有两个接口,它约束了动物的行为  如接口:I叫,I跑
有两个基类:动物,人类
两个类:猫,张三

猫:动物,I叫,I跑    //猫属于动物,他继承了动物就不能继承人类,但它可以叫也可以跑

张三:人类,I叫,I跑     //张三属于人类,也可以叫也可以跑

评分

参与人数 1技术分 +1 收起 理由
苏波 + 1

查看全部评分

回复 使用道具 举报
在C#中不可以,类只能单继承,但可以继承多个接口。

评分

参与人数 1技术分 +1 收起 理由
苏波 + 1

查看全部评分

回复 使用道具 举报
不可以,但可以同时实现多个接口,藤椅同学 回答的形象而生动,我赞同。。。。

评分

参与人数 1技术分 +1 收起 理由
苏波 + 1

查看全部评分

回复 使用道具 举报
docnet中不能以。。但可以通过接口来实现
回复 使用道具 举报
一个类只能直接继承一个类,但是一个类其实间接继承了多个类,比如:中国人类继承自人类,北京人类继承自中国人类,但是北京人类虽然没有直接继承人类,可却有人类的所有公有内容,相当于间接继承;如果要实现多继承,只能用接口;
也就是说一个类可以继承一个父类,同时实现多个接口
public class class1:类1,接口1,接口2,接口3......
回复 使用道具 举报
1、继承是可传递的。如果C从B中派生,B又从A中派生,那么C不仅继承了B中声明的成员,同样也继承了A中的成员。Object类作为所有类的基类。

2、派生类(子类)应当是对基类(父类)的扩展。派生类可以添加新成员,但不能除去已经继承的成员的定义。

3、构造函数和析构函数不能被继承。除此以外的其它成员,不论对它们定义了怎样的访问方式,都能被继承。基类成员的访问方式只能决定派生类能否访问它们。

4、派生类如果定义了与继承而来的成员同名的新成员,就可以覆盖已继承的成员。但这并不因为这派生类删除了这些成员,只是不能再访问这些成员。(这点需要注意的是,如果是属性或者方法同名,但是签名不同,那就不是覆写,而是重载了)。

5、类可以定义虚方法、虚属性以及虚索引指示器,它的派生类能够重载这些成员,从而实现类可以展示出多态性。

6、派生类只能从一个类中继承,可以通过接口实现多重继承。
回复 使用道具 举报
举个例子:男人、女人你把他们看成两个子类,他们继承自人类(父类);藏獒、狼狗、沙皮狗、土狗子继承自狗类(父类)。可以看出他们只能属于某一类不可能既属于人类又属于狗类是吧?
回复 使用道具 举报
类不能多继承。接口可以
回复 使用道具 举报
一个类只能继承一个类,但可以通过多个接口interface实现
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马