c#基础学习第三篇:继承

2017-09-11 14:46:59来源:网络收集作者:咖啡不加糖人点击

分享

1.继承的类型


实现继承和接口继承
实现继承:表示一个类型派生于一个基类型,它拥有该基类型的所有成员字段和函数。
接口继承:表示一个类型只继承了函数的签名,没有继承任何实现代码。


多重继承:
c#不支持多重实现继承,支持多重接口继承


结构和类:
结构不支持继承,结构派生自System.ValueType,类派生自System.Obejct


实现继承:
基类:


class MyClass
{
}

继承基类:


class MynewClass : MyClass
{
}

如果类或者结构也派生自接口,则用逗号分隔列表中的基类和接口
虚方法:
把一个基类函数声明为virtual,就可以在任何派生类中重写改函数:


class MyBaseClass
{
///
/// 虚方法,可以在任何继承该类的子类中重写
///

///
public virtual string VirtualMethod()
{
return "this is VirtualMethod";
}
}

也可以把属性声明为virtual,对于虚属性或者重写属性,语法和虚方法一样


C#虚函数的概念和标准OOP的概念一样:可以再派生类中重写虚函数,在调用方法时,会调用该类对象的合适方法。C#要求派生类的函数重写另一个函数时,要使用override关键字显示声明:


class MyClass:MyBaseClass
{
///
/// 重写父类的方法
///

///
public override string VirtualMethod()
{
return base.VirtualMethod();
}
}

隐藏方法:
如果签名相同的方法在基类和派生类都进行了声明,但该方法没有分别声明virtual和override,派生类方法就好隐藏基类方法。
在C#中隐藏一个方法应该使用new关键字声明


class YouClass:MyClass
{
private new void Play()
{
}
}

调用函数的基类版本:
base
抽象类和抽象函数
c#允许把类和函数声明为abstract,抽象类不能实例化,而抽象函数不能直接实现,必须在非抽象类中重写,如果类包含抽象函数,则该类也是抽象的,也必须声明为抽象的
密封类和密封方法
c#允许把类和方法声明为sealed,对于类,这表示不能继承该类,对于方法表示不能重写改方法。
修饰符
可见性修饰符:
c#基础学习第三篇:继承
不能把类定义为protected,private,protected internal因为这些修饰符对于包含在名称空间中的类型没有意义。
其他修饰符:
c#基础学习第三篇:继承
c#基础学习第三篇:继承


接口:
如果一个雷派生自一个接口,声明这个类就会实现接口的某些函数。


public interface Mclass
{
void dispose();
}
class YouClass:MyClass, Mclass
{
public void dispose()
{
}
private new void Play()
{
}
}

定义和实现接口:


public interface Mclass
{
void dispose();
decimal balane { get; }
}

ps:接口名称一般用I开头




最新文章

123

最新摄影

微信扫一扫

第七城市微信公众平台