zoukankan      html  css  js  c++  java
  • 十一、接口(接口的概念,实现,继承,实现)、抽象类与抽象方法(抽象类,抽象方法概念,使用)

    接口

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

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

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

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

    抽象类和抽象方法

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

    在抽象类中声明方法时,如果加上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

  • 相关阅读:
    Android手势锁实现
    网页模板pug基本语法
    React入门看这篇就够了
    我曾站在离你最近的天涯
    一文看懂浏览器事件循环
    Vi编辑网卡
    2019.6.11_MySQL进阶二:主键与外键
    2019.6.13_笔试题目及答案
    2019.6.13_MySQL简单命令的使用
    2019.6.13_SQL语句中----删除表数据drop、truncate和delete的用法
  • 原文地址:https://www.cnblogs.com/baixiao/p/7746202.html
Copyright © 2011-2022 走看看