C# 语法(abstract new override)

来源:互联网 发布:mac audition 破解 编辑:程序博客网 时间:2024/06/01 09:38

1.类的一个主要的特点是 “多态性”

关于多态性,我们可以简单的认为,类的函数具有多种状态(即多种实现的方式),当然这类应该是基类。在C#中,类的方法和属性都可以实现多态。

关键字: virtual                  new                ovrride

基类中必须使用virtual来进行声明;

子类继承父类,当需要重写基类中virtual修饰的方法时,需要使用ovrride关键字,也可以使用new,如果重载了基类virtual方法,但是没有使用ovrride,new,

默认的修饰符是new。

ovrride和new的区别

ovrride:

多态性会指定到子类最远的ovrride那个方法。

new:

多态性会指定到离new那个方法最近的ovrride方法(如果继承路径中没有ovrride方法,那就调用了基类本身的方法了)。

using System;namespace MyTraining{    class Book    {        public virtual void Information()        {            Console.WriteLine("Book");        }    }    class MathBook : Book    {        public override void Information()        {            Console.WriteLine("MathBook");        }    }    class GeometryBook : MathBook    {        public new void Information()        {            Console.WriteLine("GeometryBook");        }    }    class Test    {        static void Main()        {            Book myBook = new MathBook();            myBook.Information();            myBook = new GeometryBook();            myBook.Information();            Console.ReadKey();        }    }}



2.关于抽象类

抽象类用abstract来修饰,方法也abstract,方法需要抽象,不能实现。抽象类因为抽象,所以不能产生具体的实例。