Java之接口的特性

  • 前言

        在学习了类、对象和继承后,这里将介绍两个比较高级的技术:接口与内部类。Java中的接口时Java灵活的基石,主要用来描述类可以具体有什么样的功能,但并不给出功能的具体实现。内部类是指在一个外部类的内部类再定义一个类。内部类作为外部类的一个成员,是依附于外部类而存在的。在编写图形类接口的时候,内部类有助于写出专业高效的代码。


  • 接口的特性

        Java中的接口是一系列方法的声明,是一些方法特征的集合,一个接口只有方法的特征,没有方法的实现。因此,这些方法可以在不同的地方被不同的类实现,而这些实现可以具有不同的行为或者功能。

        在Java语言规范中,一个方法的特征仅包括方法的名字,参数的数目和种类,而不包括方法的返回类型,参数的名字以及抛出的异常。在Java编译器检查方法的重载时,会根据这些条件判断两个方法是否是重载关系。但在Java编译器检查方法的置换时,则会进一步检查返回类型和抛出的异常是否相同。

        Java接口本身没有任何实现,只描述公共的行为,不涉及表象,所以Java接口比Java抽象类更抽象化。因为Java接口的方法只能是抽象的和公开的,所以lava接口不能有构造器,Java接口可以有 public、static和final属性。

        接口把方法的特征和方法的实现分割开来。接口常常代表一个角色,它包装与该角色相关的操作和属性,而实现这个接口的类便是扮演这个角色的演员。一个角色由不同的演员来演,而不同的演员之间除了扮演一个共同的角色之外,并不要求其他共同之处。

        使用接口可以实现类似于类的多重继承的功能。实现接口和实现继承的规则不同,一个类只有一个直接父类,但可以实现多个接口。

        那么,为什么使用接口?假设这样一种情况,两个类中的两个类似的功能,调用他们的类动态地决定使用哪一种实现,为它们提供一个抽象父类,子类分别实现父类所定义的方法。问题在于,Java是一种单继承的语言,一般情况下,某个具体类可能已经有了一个超类,解决办法是给它的父类加父类,或者给它父类的父类加父类,直到移动到类等级结构的最顶端。这样一来,对一个具体类的可插入性的设计,就变成了对整个等级结构中所有类的修改。

        一个等级结构中的任何一个类都可以实现一个接口,这个接口会影响到此类的所有子类,但不会影响到此类的任何超类。此类将不得不实现这个接口所规定的方法,而其子类可以从此类自动继承这些方法,当然也可以选择置换掉所有这些方法,或者其中的某些方法,这时候,这些子类具有了可插入性,并且可以用这个接口类型装载,传递了实现它的所有子类。

        所以在接口中,我们关心的不是某一个具体的子类,而是这个子类是否实现了我们需要的接口。接口提供了关联以及方法调用上的可插入性,软件系统的规模越大,生命周期越长,接口使得软件系统的灵活性、可扩展性和可插入性得到保证。


2019/1/1013:17

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值