接口---interface

   接口是抽象方法和常量的集合
关键字  接口{
}
  接口特点
1、一般接口的成员变量都是大写
2、其中静态方法可以省略static和final关键字
3、抽象方法可以省略abstract关键字。 默认接口中所有成员方法都是省略public abstract的
4、 接口不能被实例化,需要通过实现类来实现
(接口中存在抽象方法,那就表明接口本身也是一个抽象类,所以肯定不能被实例化,只能通过接口实现类来实现,要实现接口的实现类我们要通过implements关键字来实现)
5、接口与接口是可以多继承的
public  interface 1 extends 2,3{}
6、接口是一种规范与标准,同时也是灵活的
    接口实现类的特点:
1、如果一个类实现了接口,那么该类就必须实现接口中定义的所有抽象方法
2、如果一个类不想实现接口的方法,那子类必须定义为一个接口或者抽象类
(子类不想实现父类接口中定义的抽象方法那么可以定义本身为一个接口,然后通过继承父接口的所有抽象方法和常量)
3、 Java里面由于不允许多重继承,所以如果要实现多个类的功能,则可以通过实现多个接口来实现。
    接口与抽象类对比
    Java接口和Java 抽象类 代表的就是抽象类型,就是我们需要提出的抽象层的具体表现。OOP 面向对象 的编程,如果要提高程序的复用率,增加程序的可维护性,可扩展性,就必须是面向接口的编程,面向抽象的编程,正确地使用接口、抽象类这些太有用的抽象类型做为java结构层次上的顶层。
   Java接口和Java抽象类有太多相似的地方,又有太多特别的地方,究竟在什么地方,才是它们的最佳位置呢?把它们比较一下,你就可以发现了。
   1、 Java接口和Java 抽象类 最大的一个区别,就在于Java抽象类可以提供某些方法的部分实现,而Java接口不可以,这大概就是Java抽象类唯一的优点吧,但这个优点非常有用。如果向一个抽象类里加入一个新的具体方法时,那么它所有的子类都一下子都得到了这个新方法,而Java接口做不到这一点,如果向一个Java接口里加入一个新方法,所有实现这个接口的类就无法成功通过编译了,因为你必须让每一个类都再实现这个方法才行,这显然是Java接口的缺点。 
   2、 一个抽象类的实现只能由这个抽象类的子类给出,也就是说,这个实现处在抽象类所定义出的继承的等级结构中,而由于 Java语言 的单 继承性 ,所以抽象类作为类型定义工具的效能大打折扣。在这一点上,Java接口的优势就出来了,任何一个实现了一个Java接口所规定的方法的类都可以具有这个接口的类型,而一个类可以实现任意多个Java接口,从而这个类就有了多种类型。 不难看出,Java接口是定义混合类型的理想工具,混合类表明一个类不仅仅具有某个主类型的行为,而且具有其他的次要行为。
比较
抽象类
接口
定义
用abstract关键字修饰类
interface关键字来修饰
组成
抽象方法、普通方法、构造方法、成员变量、常量
抽象方法、静态常量
使用
子类继承(extends)
实现类实现(implements)
关系
抽象类可以实现接口
接口是不能继承抽象类的
对象
都是通过多态实现
<--------
局限
不能多继承,不能实例化
可以多继承,能被实例化
选择
建议选择接口,避免单继承
<--------
实际
模板
标准
    继承和接口的使用场景
当我们设计一个非常复杂而又无法实现的类的时候可以使用继承,当我们重新编写一些简单的功能或者指定的一些标准的时候使用接口,开发中一般采用面向接口编程,抽象类是标准,接口是规范
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值