C#学习教程五

阿里 阅读:579 2021-04-01 10:03:06 评论:0

继承与多态

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

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


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

实例代码:

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修饰符同时使用。


静态类 :静态类的主要特征是不能被实例化,也不能派生子类。


标签:C#
声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

关注我们

一个IT知识分享的公众号