接口的知识点

接口

        接口的语法

  1. 接口可以看做是一种特殊的"抽象类",抽象类中能够有部分实现,而接口不能有任何实现.
  2. 接口的语法:

                interface A{

                float PI=3.14f;

                public void add()

                                  }

      3.接口和类的命名规则一样,首字母大写

      4.接口和类的访问修饰符只有两种: a.默认不加,只能在同包中被访问 b.public,全局通用

      5.接口的组成: a.静态常量  static final (默认可以省略不写,必须初始化其值). b.抽象方法  abstract (默认可以省略不写)

      6.接口中的成员都是public的,默认不写也是public 不能缩小范围.

      7.接口是抽象的,不能实例化,以下两种写法是一样的. a.interface A{} b.abstract infterface A{}

      8.在JDK5之前 没有枚举enum,通常在接口中定义常量组来实现枚举效果

      9.接口可以继承接口,但不能继承类,并且弥补类的单一继承,接口可以多继承.

    10.接口不能有构造方法.

        实现接口

  1. 接口是抽象的,不能实例化
  2. 所以依赖于实现类去实现接口 a.一个类可以实现多个接口,逗号分隔. b.实现接口的关键是:implements. c.一个类实现了接口,需要实现(重写)接口中的所有方法,包括接口所有父级接口. d.如果是抽象类实现接口,可以无需实现接口中的方法.
  3. 接口变量可以引用实现类对象,符合里氏替换原则,所以也可以实现多态效果
  4. 继承表示的是 is a 的关系,接口通常表示的是一种能力,可以理解为 can do.常以able结尾.
  5. 继承会影响对象的本质.而接口的侵入比较小,只要求对象具备某些功能.
  6. 案例:  a.cellphone是手机的基类. b.有Nokia和Huawei作为子类 c.手机可以拍照,但不是照相机,所以实现photograph接口. d.照相机camera也是实现了拍照接口. e.如果旅行的过程中需要拍照,可以拿出相机,也可以拿手机拍照.

        策略设计模式

  1. 创建一个能够根据所传递的参数对象的不同而具有不同行为的方法,被称为策略设计模式.
  2. 这里方法包含执行算法的固定不变的部分,而”策略“包含变化的部分
  3. 案例: a.对数组进行排序 b.算法有三种 二分法 division,插入排序insert,冒泡bubble c.可以根据需要使用不同的排序方式进行排序
  4. 尽管在构建具有某些未实现方法的的类,你的第一想法可能是创建接口,但抽象类仍然是用于此目的的一种重要而必须的工具,因为你不可能总是使用纯接口.
  5. 继承抽象类会控制你的本质,而实现接口本质不变,只是要求你具备什么样的能力.
  6. 接口和抽象类都是具有强制约束力,如果不写重写方法都无法编译通过.
  7. 接口可以多继承,可以通过灵活的组合衍生出新的接口. a.有单独的接口phothoable,Network,playMusic,calable,sendmsg,Touchable b.可以在以上接口的基础上,衍生出camera,HandSet,Pad等子接口.
  8. 不要盲目崇拜接口,具体情况还是要具体分析,权衡利弊后选择抽象类还是接口.

        深入理解接口

  1. 接口是一种约定,一个标准,一个规范。
  2. 接口的目的:将设计(接口)与现实分离,因此接口被用来建立类与类之间的协议。
  3. 接口好比指指点点的领导,把那些事情要做,大致怎么做罗列一道,而员工就是实现类。
  4. 一个类可以实现多个接口,并且可以向上转型为每个接口,因为每一个接口都是一个独立的类型。
  5. 如果一个类实现了接口,也继承了父类,则父类要写在前面。
  6. 接口是双方的约定,所以接口中所有内容都是共有的,保证双方都清楚知道所有内容。
  7. 同时实现多个接口时候的命名冲突需要注意方法名和参数相同,但返回值类型不同时会报错。

        抽象类和接口的区别

  1. 以打印机的例子来说明接口和类
  2. 接口和抽象类都是抽象的,都不能实例化,都可以用来做设计,都可以包含抽象方法。
  3. 接口提供了形式,而未提供任何具体实现,抽象类可以有具体实现。
  4. 抽象类是普通类与接口之间的一种中庸之道,是一个过渡地带。
  5. 接口的倾入性小,因为接口可以多实现,而继承是单根性,在都可以使用的前提下,通常优先考虑接口。
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值