1、virtual和override
a:
virtual 用在基类中,指定一个虚方法(属性),表示这个方法(属性)可以重写。
b:override 用在派生类中,表示对基类虚方法(属性)的重写。
class Test2 : Test
{
public override void Print()
{
Console.WriteLine("我是子类重写了的Print方法");
//使用base关键可以在子类中访问基类同名的方法,
//base.Print();
}
public sealed override void Show()
{
Console.WriteLine("我是阻止派生类重写的Show方法");
}
}
代码运行的结果是:我是子类重写了的Print方法
2、多态
a:下面我通知两句话来帮助初学者理解C#继承与C#多态
b:C#
继承:子类使用父类的方法。
c:C#
多态:父类使用子类的方法。
d:
通过继承实现的不同对象调用相同的方法,表现出不同的行为,称之为多态。
public abstract class Graph
{
public int getSides(){ }
}
//这就是继承
public class Circular : Graph
{
public override int getSides() //子类使用父类的方法
{
return 1;
}
}
public class square : Graph
{
public override int getSides() //子类使用父类的方法
{
return 2;
}
}
class Program
{
static void Main(string[] args)
{
Circular c = new Circular();
Console.WriteLine(c.getSides());
Square s = new Square();
Console.WriteLine(s.getSides());
//这就是多态
Graph g;
g= new Circular();
g.getSides(); //父类使用子类的方法
g = new Square();
•
g.getSides();
//父类使用子类的方法
Console.ReadKey(
);
}
}
3、索引器
a:索引器是一种特殊的类成员,它能够让对象以类似数组的方式来存取,使程序看起来更为直观,更容
写。
索引器的定义
C#中的类成员可以是任意类型,包括数组和集合。当一个类包含了数组和集合成员时,索引器将大大简
对数组或集合成员的存取操作。
定义索引器的方式与定义属性有些类似,其一般形式如下:
[修饰符] 数据类型 this[索引类型 index]
{
get{//获得属性的代码}
set{ //设置属性的代码}
}
b:修饰符包括 public,protected,private,internal,new,virtual,sealed,override, abstract,extern.
数据类型是表示将要存取的数组或集合元素的类型。
索引器类型表示该索引器使用哪一类型的索引来存取数组或集合元素,可以是整数,可以是字符串;this
示操作本对象的数组或集合成员,可以简单把它理解成索引器的名字,因此索引器不能具有用户定义的
称。
更多精彩请关注:http://unity.gopedu.com/