1、修饰符的介绍
①new:仅允许在嵌套类中声明时使用,表明类中隐藏了由基类中继承而来的、与基类中同名的成员
②public:不限制对该类的访问
③protected:只能从其所在类和所在类的子类(派生类)进行访问
④internal:只有其所在类才能访问
⑤private:只有.NET中的应用程序或库才能访问
⑥abstract:抽象类,不允许建立类的实例
⑥sealed:密封类,不允许被继承
2、属性和字段
①字段和属性都可以输入,通常把信息存储在字段和属性中
②但属性和字段是不同的,属性不能直接访问数据,字段可以直接访问数据
③字段可以有静态的,但属性必须实例
private int x=0; // 字段,一般建议字段全部设为private
public int X //属性
{
get{return x;}
set{x=value;}
}
3、C#只支持单继承,不支持多重继承,即在C#中一次只允许继承一个类,不能同时继承多个类
4、多态可以使子类(派生类)的实例可以直接赋予基类的变量(无需强制类型转换),然后直接就可以通过这个变量调用子类(派生类)的方法。C#中,类的多态性是通过在子类(派生类)中重载基类的虚方法或函数成员来实现的
class Program
{
static void Main(string[] args)
{
MyClass2 myclass2 = new MyClass2();
//使用子类MyClass2的对象实例化基类MyClass1的对象
MyClass1 myclass1 = (MyClass1)myclass2;
myclass1.X = 3;
myclass1.Y = 5;
Console.WriteLine(myclass2.Add()); //调用子类中的方法
Console.WriteLine(myclass1.Add()); //调用子类中的方法
}
}
class MyClass1
{
private int x = 0;
private int y = 0;
public int X
{
get { return x; }
set { x = value; }
}
public int Y
{
get { return y; }
set { y = value; }
}
public virtual int Add() //虚方法
{
return X + Y;
}
}
class MyClass2 : MyClass1 //继承类MyClass1
{
public override int Add() //重写基类中的虚方法
{
int x = 5;
int y = 7;
return x + y;
}
}
5、一些注意事项
①virtual 修饰符不能与private、static、abstract或者override修饰符同时使用
②override修饰符不能与new、static或者virtual修饰符同时使用,并且重写方法只能用于重写基类中的虚方法
③C#中,继承、虚方法和重写方法组合在一起才能实现多态性