黑马程序员技术交流社区

标题: 请看string类定义,, 在类名后面加 ":" 冒号 然后后面一段是什么意思 [打印本页]

作者: 王继光    时间: 2012-6-10 16:08
标题: 请看string类定义,, 在类名后面加 ":" 冒号 然后后面一段是什么意思
public sealed class String : IComparable, ICloneable, IConvertible, IComparable<string>, IEnumerable<char>, IEnumerable, IEquatable<string>
{

}
作者: 王继光    时间: 2012-6-10 16:09
在vs中 在 string 上 转到 类定义,, 可以看到上面的定义,, 不清楚  那 冒号 ":"  后面是什么意思??
作者: 孙毅    时间: 2012-6-10 16:12
意思是string类实现了 IComparable, ICloneable, IConvertible, IComparable<string>, IEnumerable<char>, IEnumerable, IEquatable<string>这些接口
作者: 王继光    时间: 2012-6-10 16:27
孙毅 发表于 2012-6-10 16:12
意思是string类实现了 IComparable, ICloneable, IConvertible, IComparable, IEnumerable, IEnumerable, I ...

可以说得再通俗易懂点吗?  接口 是什么?  IComparable 前面的I代表什么?
IComparable, ICloneable, IConvertible, IComparable<string>, IEnumerable<char>, IEnumerable, IEquatable<string>  这些各代表什么意思?
其中  为什么有2个 后面有 <string>?
作者: 黑马龙超    时间: 2012-6-10 16:33
本帖最后由 黑马龙超 于 2012-6-10 16:39 编辑


1、可以是继承某个类,后面是父类的名字,只能继承一个父类
2、也可以是实现某个(些)接口,可以实现多个接口,后面是接口的名字,多个接口用,相隔;接口的命名大多以I开头命名,取接口Interface的首字母
这里很明显是接口,接口中声明了一些方法成员但没有实现,而是等待实现它的类去实现,并且需要完全实现。它就是从它“继承”所有类的一个约定,约定有哪些方法成员。
至于 IEnumerable<char>之类后面带有<>的是泛型接口,比如IEnumerable<char>就是一个泛型集合接口。
至于泛型,去看看书。

作者: 钟广雄    时间: 2012-6-10 16:46
继承多个接口,定义接口类一般开头以是以I开头的,至于那个接口类带有<>这样的是泛型 比如class<U>  class<T>
作者: 孙毅    时间: 2012-6-10 17:29
王继光 发表于 2012-6-10 16:27
可以说得再通俗易懂点吗?  接口 是什么?  IComparable 前面的I代表什么?
IComparable, ICloneable, ICo ...

你可以理解为接口是用于约束类的行为,是所有要实现此接口的类的一组行为规范,就是说实现它的类必需要做这些,前面的I是命名规范,这样更容易识别是接口,也可以不加I,后边带有<>是泛型接口的意思,建议先看一下相关的基础东西吧
作者: 王继光    时间: 2012-6-10 17:33
孙毅 发表于 2012-6-10 17:29
你可以理解为接口是用于约束类的行为,是所有要实现此接口的类的一组行为规范,就是说实现它的类必需要做 ...

呵呵, 谢谢!  也谢谢上面解答的各位同学!!  我从C语言转过来学习C#才几天,  想看看string中有哪些方法什么的,有些基础的概念不懂, 遇到了所以就提问了, 这个也是在学习!! 看其它的东西还没到那个时候, 先了解点也行啊 !
作者: 朱亮辉    时间: 2012-6-10 18:49
就是String类继承了 IComparable, ICloneable, IConvertible, IComparable<string>, IEnumerable<char>, IEnumerable, IEquatable<string>,这些接口,接口可以多继承!
作者: 刘豪    时间: 2012-6-10 19:30
就是简单的继承以上借口啊
作者: G_Xiaotao    时间: 2012-6-10 21:30
就是继承多个接口啊!
作者: 牛景亮    时间: 2012-6-10 22:46
继承了:后面的类或接口
作者: 许庭洲    时间: 2012-6-11 08:20
String 类实现IComparable, ICloneable, IConvertible, IComparable, IEnumerable, IEnumerable和IEquatable七个接口。
作者: 吴伟烈    时间: 2012-6-19 21:46
:后面如果只有一个类的继承
有多个是实现的接口
有<>的是泛型接口,例如IEnumerable<char>就是一个char型的集合接口。

接口的定义如下
定义了若干个抽象方法和常量,形成的一个属性集合
一个类可以实现多个接口,解决不能继承多个父类的缺点

注意:
1.接口的成员只能是方法、索引以及属性,不能包含字段,构造函数,和常量
2.接口的成员隐式是公开的,不能使用指定访问修饰符
3.接口中的方法、索引以及属性不能有任何实现
4.接口中最常用的是方法,在接口中定义方法只需给出放回值类型、方法名称和参数列表,然后以;号结尾,类似抽象方法
5.可以理解接口为特殊的抽象类
6.接口的命名一般以I开头
7.只有类和结构才能实现接口

类和结构要实现接口要注意:
1.在基类列表中包含接口名称
2.为每个接口的成员提供实现
3.实现接口和继承类的语法相同,实现多个接口用,号分开
作者: 王志波    时间: 2012-6-24 07:05
没错,是实现了一系列接口,要想了解的话可以看后面的视频。
作者: 李嫒    时间: 2012-6-25 12:45
实现接口
作者: 刘玺    时间: 2012-6-25 19:37
String类继承了IComparable、ICloneable、IConvertible、IEnumerable接口,以便调用者枚举、拷贝、转换容器中的字符。同时还继承了IComparable, IEnumerable, IEquatable,这表示源代码的编写者考虑到了对泛型的支持。
String类是.NET Framework中最为重要的类型之一。
  不可变对象,提供了多种字符串操作函数。
  为StringBuilder类提供基础方法。
作者: xiaozehope    时间: 2012-6-30 23:07
类名后面的冒号就是代表“继承”   这里可以继承类和接口,对于string类的继承都是一些接口来的,一般接口都是以大写I开头的(interface接口的简写),对于接口后面的<>是代表泛型。


作者: 肖琦    时间: 2012-7-1 21:26
c#中 “:” 表示继承和实现的关系,继承是单继承,摆在 “:” 后第一个,后面用“,”号隔开放接口,通常接口名称都是以大写I开头(命名规范);如果要深入了解继承和接口,先看一下视频,将面向对象的,视频区可以下载,希望对你有帮助!
作者: 黑马李果    时间: 2012-7-3 22:08
冒号后面是继承的接口
作者: 王玲星    时间: 2012-7-4 00:22
就是String类继承了 IComparable, ICloneable, IConvertible, IComparable<string>, IEnumerable<char>, IEnumerable, IEquatable<string>,这些接口,这些接口可以做的事,String类基本上都可以做了,后面的<>是泛型。
继承使代码具有了可重用性,给程序的设计带来了很大的方便。
在面对对象中,继承用的太频繁了。




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