首页 > 学院 > 开发设计 > 正文

C#封装、多态、抽象、接口、匿名方法等学习

2019-11-14 16:27:50
字体:
来源:转载
供稿:网友

1:封装

   将对象进行封装,并不等于将整个对象完全包裹起来,而是根据实际需要,设置一定的访问权限,用户根据不同的权限调用对象提供的功能,在C#语言中,可以使用修饰符public、internal、PRotected、private分别修饰类的字段、属性和方法。

 

2:继承,主要是注意继承的格式

 

[csharp] view plaincopy
  1. public class ParentClass  //父类  
  2. {  
  3.    public ParentClass();  
  4. }  
  5.   
  6. public class ChildClass : ParentClass  :子类  
  7. {  
  8.    public ChildClass();  
  9. }  

 

 

3:多态

    多态是面向对象编程思想的核心之一,多态的意思是:当从父类派生出了一些子类后,每个子类都由不同的代码实现,因此,同样的调用可以产生不同的效果,主要由子类来决定,在程序运行时,面向对象的语言会自动判断对象的派生类型,并调用相应的方法。

   在C#中多态分为两种类型,即编译时多态和运行时多态,编译时多态是通过重载来实现的,运行时多态是系统运行时根据实际情况来决定何种操作。

实例代码:

 

[html] view plaincopy
  1. public class MyIntertest   
  2. {  
  3.    public virtual void interest()   
  4.    {  
  5.       Console.WriteLine("我的爱好");  
  6.       Console.ReadLine();  
  7.    }  
  8. }  
  9.   
  10. public class Writer : MyIntertest  
  11. {  
  12.     public override void Interest()   
  13.     {  
  14.        Console.WriterLine("写作");  
  15.     }  
  16. }  
  17.   
  18. public class Program : MyInterest  
  19. {  
  20.     public override void interest()   
  21.     {  
  22.         Console.WriteLine("编程");  
  23.     }  
  24. }  
  25.   
  26. public class Sing : MyInterest   
  27. {  
  28.     public override void interest()   
  29.     {  
  30.         Console.WriteLine("唱歌");  
  31.     }  
  32. }  
  33.   
  34.   
  35. public class Test   
  36. {  
  37.    public static int main(String[] args)   
  38.    {  
  39.        MyInterest[] interests = new MyInterest[4];  
  40.        interests[0] = new Write();  
  41.        interests[1] = new Program();  
  42.        interests[2] = new Sing();  
  43.        interests[3] = new MyInterest()  
  44.          
  45.        foreach ( MyInterest interest in interests)  
  46.        {  
  47.            interest.interest();  
  48.        }  
  49.          
  50.        return 0;  
  51.    }  
  52. }  

 

4:

接口:    界面,是两个有界事物的交界处,通过界面可以与对方交互,交互的方式由约定产生,这种约定就是由具体交互动作的规则,只要遵循规则 即可与拥有规则的事物交互。    在C#中,接口是声明类具有的方法和成员的、自身不能被实例化的、只能被继承的特殊的类,其只管描述事物的特性而实现特性的任务却由其他类负责。    接口中不能包含字段    接口定义了类要实现的一系列方法,但是它本身不能实现这些方法,只是用逻辑结构方式来描述。        在接口的成员中,只能是方法、属性、事件或者索引器,它的成员不能包含常数、字段、运算符、实例构造函数、析构构造函数或类型,也不能包含任意种类的    静态成员。    

[csharp] view plaincopy
  1. interface MyInterface  
  2.   {  
  3.      string STR    //属性STR  
  4.      {  
  5.        get;       //属性可读  
  6.        set;       //属性可写  
  7.      }      
  8.      void outMethod();   //成员方法outMethod  
  9.   }  
  10.     
  11.   class InheritInterface : MyInterface  
  12.   {  
  13.      string str = "21天学习C#";    //定义并初始化字符串  
  14.      public string STR  
  15.      {  
  16.         get  
  17.         {  
  18.            return str;  
  19.         }  
  20.         set  
  21.         {  
  22.            str = value;  
  23.         }  
  24.      }    
  25.      public void outMethod()  
  26.      {  
  27.         Console.WriteLine(this.STR);  
  28.      }   
  29.   }  



 

5: 域和属性     域也叫成员变量,它可以用来保存类的各种信息,域可以分为静态域和实例域两种,其中,静态域属于类,实例域属于对象。     属性是一种用来访问对象的特殊成员。          域的声明:和普通变量相同,可以用new, public, protected, static和readonly等         

[csharp] view plaincopy
  1. public class Date  
  2.    {  
  3.       private string name = "hoan";  
  4.       public string nameAttr   
  5.       {  
  6.         get  //使用get访问器读值  
  7.         {  
  8.            return name;  
  9.         }  
  10.         set  //使用set访问器写值  
  11.         {  
  12.              
  13.         }  
  14.       }  
  15.    }  


6:匿名方法:
   匿名方法的作用是将代码块当作参数来使用,使代码对于委托的实例很直接,很便利,可以减少实例化委托对系统资源的开销。匿名方法还共享了
   本地语句包含的函数成员访问权限。
   
   匿名方法的使用:
    

[csharp] view plaincopy
  1. namespace codemo  
  2.     {  
  3.        delegate void Writer(string s);  //委托所调用的命名方法  
  4.        class Program   
  5.        {  
  6.            static void NamedMethod(string k)   //委托所调用的命名方法  
  7.            {  
  8.               System.Console.WriteLine(k);   
  9.            }  
  10.            static void Main(string[] args)   
  11.            {  
  12.               Writer w = delegate(string j)  //委托类调用匿名方法  
  13.               {  
  14.                  System.Console.WriteLine(j);  
  15.               }  
  16.               w("调用了匿名方法");  
  17.               Console.WriteLine();  
  18.               w = new Writer(NamedMethod);  //创建对象  
  19.               w("调用了命名方法");          //调用命名方法  
  20.               Console.ReadLine();       
  21.            }   
  22.        }   
  23.     }  

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表