ICANN认证国际域名顶级注册机构
网站建设,域名注册,空间租用,软件销售,广告设计 域名注册,空间租用, 网站建设,东莞网页设计,域名注册,网站推广,网站开发,网页设计 网站推广,,百度推广,新浪推广,雅虎推广,网易推广 标志设计,画册设计,包装设计,VI策划,企业形象顾问 连邦软件加盟店,提供销遥行,管家婆,速达,用友ERP,诺顿等软件报价及销售 建站必读 腾达网络,上网帮助中心, 腾达为东莞等地,提供网站建设,网站推广,广告设计,软件销售等优质服务!
建站必读


 
 
当前位置:首页 -> 建站必读 -> ASP技术
深入剖析C#继承机制(2)
四、多级继承



  一些面向对象语言允许一个类从多个基类中继承,而另一些面向对象语言只允许从一个类继承,但可以随意从几个接口或纯抽象类中继承。



  只有C++支持多级继承,许多程序员对此褒贬不一。多级继承常会引起继承来的类之间的混乱,继承而来的方法往往没有唯一性,所以C#中类的继承只可以是一个,即子类只能派生于一个父类,而有时你必须继承多个类的特性,为了实现多重继承必须使用接口技术,下面是对接口的多重继承进行介绍:



 



using System ;

//定义一个描述点的接口

interface IPoint

{

int x {

get ;

set ;

}

int y {

get ;

set ;

}

}

interface IPoint2

{

int y {

get ;

set ;

}

}

//在point中继承了两个父类接口,并分别使用了两个父类接口的方法

class Point:IPoint,IPoint2

{

//定义两个类内部访问的私有成员变量

private int pX ;

private int pY ;

public Point(int x,int y) {

pX=x ;

pY=y ;

}

//定义的属性,IPoint接口方法实现

public int x

{

get

{ return pX ; }

set

{ pX =value ; }

}

//IPoint1接口方法实现

public int y

{

get

{ return pY ; }

set

{ pY =value ; }

}

}

class Test

{

private static void OutPut( IPoint p )

{ Console.WriteLine("x={0},y={1}",p.x,p.y) ; }

public static void Main( ) {

Point p =new Point(15,30) ;

Console.Write("The New Point is:") ;

OutPut( p ) ;

string myName =Console.ReadLine( ) ;

Console.Write("my name is {0}", myName) ;

}

}

五、继承与访问修饰符



  访问修饰符是一些关键字,用于指定声明的成员或类型的可访问性。类的继承中有四个访问修饰符: public protected internal private。使用这些访问修饰符可指定下列五个可访问性级别: public protected internal internal protected private。





 



声明的可访问性 意义

public 访问不受限制。

protected 访问仅限于包含类或从包含类派生的类型。

internal 访问仅限于当前项目。

protected internal 访问仅限于从包含类派生的当前项目或类型。

private 访问仅限于包含类型。



  1、继承中关于可访问域的一些问题



  基类的所有成员(实例构造函数、析构函数和静态构造函数除外)都由派生类型继承。这甚至包括基类的私有成员。但是,私有成员的可访问域只包括声明该成员的类型的程序文本。在下面的示例中





class A

{

int x ;

static void F(B b) {

b.x = 1 ; // 对

}

}

class B: A

{

static void F(B b) {

b.x = 1 ; // 错误

}

}



  类 B 继承类 A 的私有成员 x。因为该成员是私有的,所以只能在 A 的"类体"中对它进行访问。因此,对 b.x 的访问在 A.F 方法中取得了成功,在 B.F 方法中却失败了。



  2、继承中关于属性的一些问题



  和类的成员方法一样,我们也可以定义属性的重载、虚属性、抽象属性以及密封属性的概念。与类和方法一样,属性的修饰也应符合下列规则:



  属性的重载



  1. 在派生类中使用修饰符的属性,表示对基类中的同名属性进行重载。



  2. 在重载的声明中,属性的名称、类型、访问修饰符都应该与基类中被继承的属性一致。



  3. 如果基类的属性只有一个属性访问器,重载后的属性也应只有一个。但如果基类的属性同时包含get 和set 属性访问器,重载后的属性可以只有一个,也可以同时有两个属性访问器。



  注意:与方法重载不同的是,属性的重载声明实际上并没有声明新的属性,而只是为已有的虚属性提供访问器的具体实现。



  虚属性



  1. 使用virtual 修饰符声明的属性为虚属性。



  2. 虚属性的访问器包括get 访问器和set 访问器,同样也是虚的。



  抽象属性



  1. 使用abstract 修饰符声明的属性为抽象属性。



  2. 抽象属性的访问器也是虚的,而且没有提供访问器的具体实现。这就要求在非虚的派生类中,由派生类自己通过重载属性来提供对访问器的具体实现。



  3. abstract 和override 修饰符的同时使用,不但表示属性是抽象的,。而且它重载了基类中的虚属性这时属性的访问器也是抽象的。



  4. 抽象属性只允许在抽象类中声明。



  5. 除了同时使用abstract 和override 修饰符这种情况之外,static, virtual, override和abstract 修饰符中任意两个不能再同时出现。



  密封属性



  1. 使用sealed 修饰符声明的属性为密封属性。类的密封属性不允
 
 
本站关键词:
|东莞网页设计|东莞网络公司|网站建设|网页设计|网络公司|网站制作|网站开发|东莞域名空间|东莞广告公司|东莞广告设计|网站建设东莞|东莞网站制作||东莞网页设计|东莞网络公司|网站建设|网页设计|网络公司|网站制作|网站开发|东莞域名空间|东莞广告公司|东莞广告设计|网站建设东莞|东莞网站制作||东莞网页设计|东莞网络公司|网站建设|网页设计|网络公司|网站制作|网站开发|东莞域名空间|东莞广告公司|东莞广告设计|网站建设东莞|东莞网站制作||东莞网页设计|东莞网络公司|网站建设|网页设计|网络公司|网站制作|网站开发|东莞域名空间|东莞广告公司|东莞广告设计|网站建设东莞|东莞网站制作||东莞网页设计|东莞网络公司|网站建设|网页设计|网络公司|网站制作|网站开发|东莞域名空间|东莞广告公司|东莞广告设计|网站建设东莞|东莞网站制作||东莞网页设计|东莞网络公司|网站建设|网页设计|网络公司|网站制作|网站开发|东莞域名空间|东莞广告公司|东莞广告设计|网站建设东莞|东莞网站制作||东莞网页设计|东莞网络公司|网站建设|网页设计|网络公司|网站制作|网站开发|东莞域名空间|东莞广告公司|东莞广告设计|网站建设东莞|东莞网站制作||东莞网页设计|东莞网络公司|网站建设|网页设计|网络公司|网站制作|网站开发|东莞域名空间|东莞广告公司|东莞广告设计|网站建设东莞|东莞网站制作||东莞网页设计|东莞网络公司|网站建设|网页设计|网络公司|网站制作|网站开发|东莞域名空间|东莞广告公司|东莞广告设计|网站建设东莞|东莞网站制作||东莞网页设计|东莞网络公司|网站建设|网页设计|网络公司|网站制作|网站开发|东莞域名空间|东莞广告公司|东莞广告设计|网站建设东莞|东莞网站制作||东莞网页设计|东莞网络公司|网站建设|网页设计|网络公司|网站制作|网站开发|东莞域名空间|东莞广告公司|东莞广告设计|网站建设东莞|东莞网站制作||东莞网页设计|东莞网络公司|网站建设|网页设计|网络公司|网站制作|网站开发|东莞域名空间|东莞广告公司|东莞广告设计|网站建设东莞|东莞网站制作||东莞网页设计|东莞网络公司|网站建设|网页设计|网络公司|网站制作|网站开发|东莞域名空间|东莞广告公司|东莞广告设计|网站建设东莞|东莞网站制作||东莞网页设计|东莞网络公司|网站建设|网页设计|网络公司|网站制作|网站开发|东莞域名空间|东莞广告公司|东莞广告设计|网站建设东莞|东莞网站制作|
域名注册 | 虚拟主机 | 网站建设 | 网站推广 | 广告设计 | 帮助中心 | 软件中心 | 关于腾达
东莞市腾达信息工程有限公司      本站网络实名: 东莞网站建设
地址:东莞市新城市中心区第一国际B座610   邮编:523007
电话:0769-22026071 22026072 传真:0769-22026076 24小时服务热线:13712032014
© 2002~2005 腾达网络   版权所有