1.类同时只能继承一个基类。

2.virtual 关键字用于修饰方法、属性、索引器或事件声明,并使它们可以在派生类中被重写。 例如,此方法可被任何继承它的类重写。

   默认情况下,方法是非虚拟的。 不能重写非虚方法。

  virtual 修饰符不能与 staticabstract, private 或 override 修饰符一起使用。

   virtual的用法

        public class test
        {
            protected string a;
            protected string b="abc";
            public virtual string A
            {
                get { return a; }
                set { a = value; }
            }
            public string B
            {
                get { return b; }
                set { b = value; }
            }
            public virtual string returnStr(string Str)
            {
                return Str;
            }
        }

        public class testchild:test
        {
            public override string A
            {
                get { return a; }
                set { a = value; }
            }
            public override string returnStr(string Str)
            {
                return Str;
            }
            public int returnInt(int Str)
            {
                return Str;
            }
        }

        virtual修饰的方法叫虚方法,没有被virtual修饰的方法叫是方法

        虚方法可以在它的派生类中用overrid重写,虚方法的重写不是必须的;重写会改变父类方法的功能
        虚方法和实方法都可以在派生类中用new修饰的同名方法覆盖,覆盖不会改变父类方法的功能

               public class testchild:test
        {
            public new string A
            {
                get { return a; }
                set { a = value; }
            }
            public new   string returnStr(string Str)
            {
                return Str;
            }
            public int returnInt(int Str)
            {
                return Str;
            }
        }

3.abstract抽象类

        abstract class ShapesClass
        {
            public string getdata();//错误!抽象类中声明的函数都要用abstract来修饰

            abstract public int Area();

        }
        class Square : ShapesClass
        {

            int side = 0;

            public Square(int n)
            {
                side = n;
            }

            // Area method is required to avoid

            // a compile-time error.

            public override int Area()
            {
                return side * side;
            }

            static void Main()
            {

                Square sq = new Square(12);

                Console.WriteLine("Area of the square = {0}", sq.Area());

            }


            interface I
            {

                void M();

            }

            abstract class C : I
            {

                public abstract void M();

            }

        }

       4.静态类,类的静态成员

          静态方法可以被重载,但不能被重写,因为它属于类,不属于任何事例。

          不能在类的静态成员中使用静态局部变量。

          类中包含静态字段则要在静态构造函数中初始化。

      5.接口

         接口可以同时继承多个接口,接口的方法声明在类中的实现必须是public的

         类可以同时继承多个接口,但类一次只能继承一个基类

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章