• C#[抽象类,接口]


    Ⅰ.抽象类

        1.抽象类、抽象方法

          抽象类:通常情况下,它里面有抽象方法,类前面定义了一个abstract

          抽象方法:只定义了方法的名称,没有定义方法的内容

       2.为什么要使用抽象类、抽象方法?

          都是为了继承

       3. 怎么去定义抽象类,抽象方法?

          abstract +类名,abstract+方法名

       4.特点:

         ❶.抽象类不能被实例化; 

         ❷.抽象方法的作用是为子类提供一个统一的接口,抽象方面里面只有声明,没有实现;

         ❸. 一个类一旦继承了一个抽象类,就必须实现对该抽象类里面所有的抽象方法的实现;

    public abstract class Person
        {
            public abstract void A();
            public abstract void B();
        }
    Person
     public class C :Person
        {
            public override void A()
           {
                Console.WriteLine("China");
               
            }
            public override void B()
            {
                Console.WriteLine("nihao");
            }
            public static void Main()
            {
                C me = new C();
                me.A();
            }
     }
    class C :Person

         ❹.一个抽象类里面可以有非抽象方法,但是一旦一个类里面有抽象方法,该类就为抽象类了;

         ❺.抽象方法在声明后用一个;结束,不需要用{};

         ❻.抽象方法在覆写的时候不需要声明为虚方法;

    Ⅱ.接口

      接口:可以看成一个更加严格意义上的抽象类,当是一个接口的时候,它里面只能是抽象方法,而不能有非抽象方法

    1、怎么去定义一个接口?

        Interface +类名

    2、怎么去定义接口里面的方法?

         eg:

             void A();

             也可以加上参数void A(string name);

            注意:千万不能这么写,void B(){};//不能这样写,因为接口里面全部都是只定义了方法名,而没有具体的实现过程

     4、特点:

          ❶.接口用来实现多继承,一个类只能有一个父类,但可以继承于多个接口class A :B,C

             (可以是继承这个接口class Animal:Interface1,也可以继承另一一个接口class Animal:Interface1,Interface2)

          ❷. 接口是一种特殊的抽象类,它里面规定得更严格,里面的方法只能为抽象方法

          ❸.定义一个接口的时候,一般为缺省,即interface +类名,前面自动加上了public abstract,定义接口中的方法时,也只需要写返回类型 +方法名即可,因为也默认为public abstract

          ❹.接口里面的所有成员都是公共的

          ❺.一个类继承与一个接口,就必须完成该接口中所有方法的实现

          ❻.接口不能包含字段,构造函数,静态变量,或者常量等

     5、接口用在什么地方?

          接口是多继承,接口的作用相当于一个工厂要生产插座,提供一个模型,模型没有提供实现的具体方法,具体的实现过程,只是定义了一个模型。

     6、为什么要使用接口?

          就是为了继承,统一规范。

     interface Interface1
        {
            //接口里面只能用抽象的方法
            void A();
            void B(string Name);//string Name参数可以写
        }
    Interface1
     class Animal:Interface1
        {
            //一个类继承了一个接口,就要去完成接口里面所有的override,必须要override
            public override void A()
            {
     
            }
            public override void B()
            {
     
            }
            public Animal()
            {
                Console.WriteLine("我是动物类!");
            }
        }
    Animal:Interface1(继承接口)

     Ⅲ.抽象类和接口有什么区别?

       区别:

          1.抽象类:有抽象的方法,也有非抽象的方法;

             接口:是更加严格意义上的抽象方法,里面必须全部是抽象方法;

          2.抽象类:抽象类里面的成员可以是私有的private,公共的public,受保护的protected;

             接口:里面所有成员都是公共的public;

       共:

           1.一个类继承一个抽象类或者一个接口,它必须要override抽象类/接口里面的所有方法。

  • 相关阅读:
    6月7日の勉強レポート
    6月6日の勉強レポート
    6月5日の勉強レポート
    6月4日の勉強レポート
    6月3日の勉強レポート
    6月2日の勉強レポート
    6月1日の勉強レポート
    linux 文件属性
    linux网卡配置
    redhat6修改主机名
  • 原文地址:https://www.cnblogs.com/wangwangwangMax/p/5502350.html
Copyright © 2020-2023  润新知