黑马程序员技术交流社区

标题: 刚刚学类的继承 [打印本页]

作者: 王震    时间: 2013-6-5 22:10
标题: 刚刚学类的继承
我想问一下,一个类可不可以同时继承多个类啊?
作者: zpzhangwenhan    时间: 2013-6-5 22:18
一个类只能继承一个类,但可以实现(可以理解为继承)多个接口interface,这是C#的硬性规定
其实一个类继承多个类没有意义的,仔细想想,类用来描述一件事物,同时继承多个类的话
就造成了混乱。  虽然不能继承多个。但可以隔代继承,因为所有的类都继承自Object类,同理。


作者: 无__畏    时间: 2013-6-5 22:21
本帖最后由 无__畏 于 2013-6-5 22:26 编辑

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

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

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

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

作者: 李奔    时间: 2013-6-5 22:25
在C#中不可以,类只能单继承,但可以继承多个接口。
作者: 李晶晶    时间: 2013-6-6 10:13
不可以,但可以同时实现多个接口,藤椅同学 回答的形象而生动,我赞同。。。。
作者: 一直在努力    时间: 2013-6-6 12:56
docnet中不能以。。但可以通过接口来实现
作者: 风雪再现    时间: 2013-6-6 15:19
一个类只能直接继承一个类,但是一个类其实间接继承了多个类,比如:中国人类继承自人类,北京人类继承自中国人类,但是北京人类虽然没有直接继承人类,可却有人类的所有公有内容,相当于间接继承;如果要实现多继承,只能用接口;
也就是说一个类可以继承一个父类,同时实现多个接口
public class class1:类1,接口1,接口2,接口3......
作者: 轮回    时间: 2013-6-6 15:22
1、继承是可传递的。如果C从B中派生,B又从A中派生,那么C不仅继承了B中声明的成员,同样也继承了A中的成员。Object类作为所有类的基类。

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

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

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

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

6、派生类只能从一个类中继承,可以通过接口实现多重继承。
作者: 关关雎鸠    时间: 2013-6-6 17:14
举个例子:男人、女人你把他们看成两个子类,他们继承自人类(父类);藏獒、狼狗、沙皮狗、土狗子继承自狗类(父类)。可以看出他们只能属于某一类不可能既属于人类又属于狗类是吧?
作者: ljh4282158    时间: 2013-6-10 11:54
类不能多继承。接口可以
作者: popoluno    时间: 2013-6-10 12:45
一个类只能继承一个类,但可以通过多个接口interface实现




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2