• java接口


    接口包含两个方面:抽象类和接口

    一 抽象类

      创建抽象类是希望通过这个类来操纵一系列类。

      仅有声明而没有方法体,语法如下:

    abstract void f();

    包含抽象方法的类叫抽象类,如果一个类包含一个或以上的抽象方法,那么该类必须限定为抽象的。(否则,编译会出错)。

    比如:

    abstract void a();
    String b();
    abstract void c();

    创建抽象类和抽象方法非常有用,可以使类的抽象性明确起来。

    二 接口

    创建接口,使用interface关键字。

    interface关键字,使抽象的概念更进一步。是一个完全抽象的类,没有提供任何具体实现。

    方法默认是public的,也可以自己加上public。接口可以包含域,隐修式的是static和final,最好用大写字母表示。一般不用来表示域.

    允许创建一个能够被向上转型为多种基类的类型,来实现某种多重继变种的特性。由此带来完全解耦、多重继承。

    接口特性,可以实现多种设计模式:

    1、策略设计模式。根据所传递的参数不同,而具有不同行为的方法

    2、适配器模式。接受有的接口,并产生新的需要的接口。

    3,工厂模式。

    三 区别

    共同点:1) 都是上层的抽象层。
    2) 都不能被实例化
    3) 都能包含抽象的方法,这些抽象的方法用于描述类具备的功能,但是不提供具体的实现。

    不同点:1)抽象类只能单继承,接口可以多实现

    2)抽象类可以有构造方法,接口中不能有构造方法

    3)抽象类的变量可以是普通成员变量,pubic、protected;接口中定义的变量默认是public static final 型,且必须给其初值,所以实现类中不能重新定义,也不能改变其值。

    4)抽象类主要用来抽象类别,接口主要用来抽象方法。关注事物本质,用抽象类;关注事物操作,用接口。

  • 相关阅读:
    测试爬虫
    流式大数据处理的三种框架:Storm,Spark和Samza
    redo日志
    HTTP协议之chunk编码(分块传输编码
    QWidget 实现 打破布局 或者 当前窗体内的 弹窗 (借助伪造实现)
    How to use kingshard building a MySQL cluster
    转载: Qt 学习之路 2归档
    Python与机器人技术
    Nginx配置正向代理
    使用Chrony配置 NTP
  • 原文地址:https://www.cnblogs.com/luoa/p/10657741.html
Copyright © 2020-2023  润新知