• 十一、接口(接口的概念,实现,继承,实现)、抽象类与抽象方法(抽象类,抽象方法概念,使用)


    接口

    接口是一种用来定义程序的协议,它描述可属于任何类和结构的一组相关行为。

    接口可由方法、属性、事件和索引器这四种成员类型的任何组合构成,但不能包含字段。

    接口通过类继承来实现,一个类虽然只能继承一个基类,但可以继承任意接口。

    声明实现接口的类时,需在基类列表中包含类所实现的接口的名称。

    抽象类和抽象方法

    如果一个类不与具体的事物相关联,而只是表达一种抽象的概念,仅仅是作为其派生类的一个基类,这样的类就是抽象类。

    在抽象类中声明方法时,如果加上abstract关键字,则为抽象方法。

    抽象类主要用来提供多个派生类可共享的基类的公共定义,他与非抽象类的主要区别有:

    抽象类不能直接实例化。抽象类中可包含抽象成员,但非抽象类中不可以。抽象类不能被密封。

    C#声明抽象类要使用abstract关键字,具体格式为:访问修饰符 abstract class 类名 :基类或接口{//类成员}

    声明抽象方法要注意两点:抽象方法必须声明在抽象类中。声明抽象方法时,不能使用virtual、static和private修饰符

    //抽象类与抽象方法的使用
    
    public abstract class myClass
    {
          private string id="";
          private string name="";
          public string ID    //编号属性及实现
         {
              get{return id;}
              set{id=value;}
         }
          public string Name    //姓名属性及实现
         {
              get{return name;}
              set{name=value;}
         }
         public abstract void ShowInfo();//抽象方法,用来输出信息
    }                
    
    public class DriveClass:myClass     //继承抽象类
    {
          public override void ShowInfo()    //重写抽象类中输出信息的方法
         {
               Console.WriteLine(ID+""+Name);
          }
    }
    
    class Program
    {
           static void Main(string[] args)
           {
                 DriveClass driveclass=new DriveClass();  //实例化派生类
                 myClass myclass=driveclass   //使用派生类对象实例化抽象类
                 myclass.ID="BH001";//使用抽象类对象访问抽象类中的编号属性
                 myclass.Name="TM";//使用抽象类对象访问抽象类中的姓名属性
                 myclass.ShowInfo;//使用抽象类对象调用派生类中的方法
           }
    
    }
        

    运行结果为BH001 TM

  • 相关阅读:
    TCP带外数据
    ASP.Net Core 返回的json数据,自定义日期格式
    C# 简单的区块链实现
    PowerShell自动部署ASP.NET Core程序到 IIS
    ASP.NET Core依赖注入多个服务实现类
    EF Core 2.0 执行原始查询如何防止SQL注入
    C#7 进入快速迭代道路
    QuartzNet 任务管理系统
    WebApi如何传递参数
    C# 快速高效率复制对象另一种方式 表达式树
  • 原文地址:https://www.cnblogs.com/baixiao/p/7746202.html
Copyright © 2020-2023  润新知