• 看视屏学编程之接口、抽象类


    ------- Windows Phone 7手机开发.Net培训、期待与您交流! -------

     
    接口
     
    定义语法
    interface 接口名      // 接口名第一个字母为大写I,如:Icompare
    {
            public void Run() { }          //——错误,接口中不能有方法的实现
            public IAnimal() { }        //——错误,接口中没有构造函数
            public void Walk();    //——错误,接口中不能写访问修饰符,
            void Walk();                 //——正确
            void Eat(DateTime time);   //——正确
            string name;      //——错误,接口不能包含字段
            string Name            //——正确,接口中可以定义属性
        {
        get;  set;
        }     
    }                         //接口是对方法的约束,是一种规范
    在接口中要按照与在类或结构中一样的方式声明方法,只是不允许制定任何修饰符,方法的主体
    也要写成一个分号(;)。   ——接口默认的访问性是:public
    接口中也不能包含任何字段,但是接口中可以定义属性  ——属性可以看作是特殊的方法
     
    接口的实现
     
    类来继承接口,接口也可以继承接口;
    类继承接口,必须把接口的属性和方法全部都实现
    实现一个接口时,必须保证每个方法都完全匹配与它对应的接口中的方法:
    方法名和返回类型完全匹配;
    所有参数(包括ref好out关键字的修饰符)都完全匹配;
    多使用接口名作为方法名的前缀,显示的实现接口;     ——显示实现接口中的方法时不能加反问修饰符
    interface IEat
    {
      void Eat();
    }
    interface IRun
    {
      void Run();
    }
    class Person : IEat, IRun       ——实现多个接口时,以逗号分割的列表列出接口
    {               ——如果还继承了类的话,类写在接口前面  
            void IEat.Eat()                          ——//接口名打点方法名
            {
                Console.WriteLine("吃");
            }
            void IRun.Run()
            {
                Console.WriteLine("跑");
       }
    }
    通过接口引用一个类:
    Person p1 = new Person();
    IEat iP1 = p1;
    通过接口引用一个对象时,只有通过接口可见的方法才能被调用。
    接口的限制:
    1、不允许在接口中定义任何字段;
    2、不允许在接口中定义任何构造函数;
    3、不允许在接口中定义任何析构函数;
    4、不允许为任何方法指定修饰符;
    5、不允许在接口中嵌套任何类型;
    6、接口可以从另一个接口继承,但是不允许从结构或者类中继承一个接口。
     
    抽象类
     
    定义语法
    abstract class 类名
    {
      ……
    }
    抽象类与普通类的比较
    相同点:普通类能定义的内容在抽象类里面都可以定义
    不同点:抽象类里面可以定义抽象方法,但普通类不能;抽象类不能被实例化,普通类可以;
    抽象类可以继承其他类,也可以被其他类继承(派生其他类);
    抽象类里的抽象方法在派生类中(派生类不是抽象类)必须全部被实现,因为普通类不能有抽象方法;
    实现抽象方法使用override,跟重写基类里的vritual方法关键词一样。
    abstract class Person
    {
      public abstract void Eat();
    }
    class Chinese : Person
    {
      public override void Eat()
      {
        Console.WriteLine("用筷子吃");
      }
    }
    抽象类不能被实例化,它的专门用来被继承的;
    但是,抽象类可以引用其子类的对象:
    Person p1;
    Chinese c1 = new Chinese();
    p1=c1;
     
     
     
     --------------------------------------------------------------------
     
     
     
     
     
     
  • 相关阅读:
    为什么需要链路追踪
    Nacos Config 多环境的配置
    Nacos Config 客户端的使用
    Nacos Config 服务端初始化
    使用路由网关的全局过滤功能
    什么是 Spring Cloud Gateway
    c# 第五节 第一个控制台程序、第一个桌面、快捷键、注释
    c# 第四节 Net Framework编写应用程序的过程
    c# 第三节 vs的安装
    c# 第二节 c#的常用IDE环境
  • 原文地址:https://www.cnblogs.com/cctt/p/3142798.html
Copyright © 2020-2023  润新知