您的位置:首页 > 编程语言 > C#

C#学习教程五

2014-01-12 17:42 387 查看
继承与多态

继承性:即一个类可以派生出新的类而且新的类能够继承基类的成员。

多态性:是指相同的操作方法可作用于多种类型的对象,并获得不同的结果。

隐藏方法:在子类中可以使用与基类的成员相同的名称来声明成员,在这种情形中,在子类不需要访问基类的同名成员,这叫做子类成员隐藏。

实例代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Hello_World
{
   public  class Conversion
    {
       public static void Main(string[] args)
       {
           Derived.G();
           More.H();

       }

       class Base {
           public static void F() {
               Console.WriteLine("Base 类的F()方法");
           }
       }

       //C#继承
       class Derived : Base { 
       //隐藏方法
           //隐藏Base类的F()方法
           new private static void F() {
               Console.WriteLine("Derived类的F()方法");
           }
           public static void G() {
               F();//调用 Derived类的F()方法,隐藏Base类的F()方法 
           }

       }

       class More : Derived {
           public static void H() {
               F();//调用Base类的F()方法 
           }
       }
   

    }
}

效果截图:



虚方法和重写方法

虚方法定义: 如果一个实例方法声明中含有virtual修饰符,则称该方法为虚方法。若其中没有virtual修饰符,则称该方法为非虚方法。

irtual修饰符不能与static 、abstrace或override修饰符同时使用。

重写方法定义:如果一个实例方法声明中含有override修饰符,则称该方法为重写方法。

override修饰符不能与new 、static、或virtual修饰符同时使用。重写方法只能用于重写基类的虚方法。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Hello_World
{
   public  class Conversion
    {
       public static void Main(string[] args)
       {
           Base a=new Base();
           Derived b = new Derived();
           //多态
           Base c = b;

           a.F();
           b.F();
           c.F();

       }
       //Base--------- 虚方法
       class Base {
           public virtual void F() {
               Console.WriteLine("Base 虚方法");
           }
       }

       //C#继承
       class Derived : Base { 
       //重写方法        
           public override  void F() {
               Console.WriteLine("Derived类重写Base虚方法");
           }
         

       }

   
   

    }
}

效果截图:



密封类和密封方法

如果一个类已经没有再继承的必要,或者我们不希望自己编写的类被继承,以避免在理解和使用上的问题,可以将类声明为密封类(sealed Class)

密封类的主要作用:用于防止意外派生。

在非密封类中,如果要防止一个实例成员在子类中被重写,可以将该成员变量声明为密封成员方法(密封还可以包含:密封方法、密封属性、密封索引器、密封事件)

sealed 修饰符总是和override修饰符同时使用。使用sealed修饰符可以防止派生类进一步重写该方法。sealed修饰符不能与abstract修饰符同时使用。

静态类 :静态类的主要特征是不能被实例化,也不能派生子类。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: