zoukankan      html  css  js  c++  java
  • 抽象类和接口

    前面写了面向对象编程的三个【特征】----封装、继承、多态。

      封装:用于隐藏内部实现,提供外部接口。

      继承:子类继承父类成员,实现代码复用的一种方式。

      多态:不同子类对同一个方法的不同实现。

    接下来总结抽象类接口多态中的应用,以及比较重要的思想---面向接口编程

      面向对象的系统中,系统的各种功能都是由许许多多的对象协作完成的,这样各个对象之间的协作关系便成为系统设计的关键,程序设计需要考虑程序的维护性、扩展性,而面向接口编程实现的就是这样思想。

    1、抽象类:是类的部分实现,用于约束其子类的行为,且允许不同的子类在此基础上拥有各自的实现。

        c#中通过abstract关键字定义抽象类抽象方法

        【语法】:public  abstract  class className

             {

                ……

             }

        abstract 修饰符用于表示所修饰的类是不完整的,并且它只能用作基类。

        【注意事项】:

          ⑴、抽象类不能被实例化,所以对抽象类使用 new 运算符会出现“编译时错误”。

          ⑵、不能是密封或静态的(抽象类需要被继承);(abstract不能与staticsealed同时使用

          ⑶、可以包含具体实现的方法。

    2、抽象方法:

        【语法】:访问修饰符  abstract  返回值类型  方法名(参数列表);

        【注意事项】:

          ⑴、没有方法体;

          ⑵、抽象方法一定存在于抽象类中,但抽象类中不一定有抽象方法。

          ⑶、当从抽象类派生非抽象类时,非抽象子类必须实现父类中所有的抽象方法。从而重写那些抽象成员。

        【举例】:

            抽象类 A 引入抽象方法 F。类 B 引入另一个方法 G,但由于它不提供 F 的实现,B 也必须声明为抽象类。

            类 C 重写 F,并提供一个具体实现。由于 C 中没有了抽象成员,因此可以(但并非必须)将 C 声明为非抽象类。

     1 abstract class A
     2 {
     3 public abstract void F();
     4 }
     5 abstract class B: A
     6 {
     7 public void G() {}
     8 }
     9 class C: B
    10 {
    11 public override void F() {
    12 // actual implementation of F
    13 }
    14 }

        

    3、接口:(interface)一种既能让子类拥有多个父类的功能,又不破坏继承单根性的方法。

        接口通常代表一个角色,它包装与该角色相关的操作和属性,而实现该接口的类便是扮演角色的演员。一个角色可以由不同的演员饰演,而这些演员除了扮演一个共同的角色外,并不要求具有其他共同点。

      【语法】:[访问修饰符] interface  接口名

           {

              //接口体

           }

       【注意事项】:

          1、接口名通常使用大写的“I”开头,表明其是接口类型;

          2、接口可由方法属性事件索引器4种成员类型的任意组合构成不包含字段

          3、接口中定义的成员不能有具体实现;

          4、接口中的成员不需要任何访问修饰,默认public类型

  • 相关阅读:
    面试(5)
    面试(五)
    面试(4)
    面试(四)
    面试(三)
    面试(2,3)
    利用session控制 长时间未操作自动退出登录
    一次性清除所有session
    动态引进js文件
    Vue--findIndex方法的使用原理
  • 原文地址:https://www.cnblogs.com/pengyouqiang88/p/5027665.html
Copyright © 2011-2022 走看看