`
gongmingwind
  • 浏览: 578835 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

(转)接口与抽象接口(interface & abstract interface)

阅读更多
前一段用到Spring的ApplicationContext接口,查看它提供的方法,打开jar包,看到的信息如下:
public abstract interface org.springframework.context.ApplicationContext extends ... {
    public abstract org.springframework.context.ApplicationContext getParent();
    ...

}


发现interface前有个abstract,怎么还有抽象接口(abstract interface)一说,接口不都是抽象的吗,这样写难道还有什么特殊意义,很是纳闷。

上网查询一些资料,有的网友把一些有名的java书上写的关于接口的论述贴了出来:
在java in a nutshell里,
“All methods of an interface are implicitly abstract, even if the abstract modifier is omitted.”
在thinking in java里,
“the abstract keyword, which allows you to create one or more methods in a class that have no definitions—you provide part of the interface without providing a corresponding implementation, which is created by inheritors. The interface keyword produces a completely abstract class, one that provides no implementation at all.”
所以结论就是 abstract interface 就是interface,两者根本没有区别。

但是为什么他们要那样写啊,不是多此一举吗?是不是jar包中把隐含的abstract自动加上了呢,我又找到了源代码,果然,源代码中并没有abstract:
public interface ApplicationContext extends ListableBeanFactory, HierarchicalBeanFactory,
        MessageSource, ApplicationEventPublisher, ResourcePatternResolver {

    ApplicationContext getParent();
    ...
}


所以,结论就是:
interface已经隐含是abstract的,interface与abstract interface的作用是一样的,只是abstract interface是更完整的表示而已。


转自:http://hi.baidu.com/dingyongli/blog/item/f8e640345ed9c04d241f14b4.html
分享到:
评论

相关推荐

    Java中抽象类和接口的区别与作用详解

    abstract class,只可以包含抽象方法,也包括一些常量的定义,丝毫不带半点实现细节,它只提供接口,可以有数据成员,默认是、同时也必须是static & final型,可以通过Interface name直接访问。Interface可以实现...

    详细解析Java中抽象类和接口的区别

    抽象类和接口的区别 在Java语言中, abstract class 和interface 是支持抽象类定义的两种机制。正是由于这两种机制的存在,才赋予了Java强大的 面向对象能力。abstract class和interface之间在对于抽象类定义的支持...

    1.5:接口和抽象类的区别.pdf

    也可以有非abstarct的成员方法,而在interface中,只能够有静态的不能被修改的数据成员(也就是必须是static final的,不过在 interface中一般不定义数据成员),所有的成员方法都是abstract的。 3.abstract class...

    深入理解abstract class和interface

    abstract class和interface是Java语言中对于抽象类定义进行支持的两种机制,正是由于这两种机制的存在,才赋予了Java强大的面向对象能力。abstract class和interface之间在对于抽象类定义的支持方面具有很大的相似性...

    接口和抽象类的区别(面向对象)

    接口与抽象类的区别 抽象方法是必须实现的方法。就象动物都要呼吸。但是鱼用鳃呼吸,猪用肺呼吸。 动物类要有呼吸方法。怎么呼吸就是子类的事了。 现在有很多讨论和建议提倡用interface代替abstract类,两者从...

    Java中interface接口与abstractclas

    Java中interface接口与abstractclass抽象类的区别共2页.pdf.zip

    Java中抽象类和接口的区别

    在Java语言中,abstract class和interface 是支持抽象类定义的两种机制。正是由于这两种机制的存在,才赋予了Java强大的面向对象能力。abstract class和interface之间在对于抽象类定义的支持方面具有很大的相似性,...

    Java语言提供的一种接口(interface)机制

    接口(interface)比抽象(abstract)的概念更进了一步。你可以把一个接口看成是一个纯的抽象类。理解并用好接口机制将帮助我们更好的掌握Java这种面向对象的编程语言。本文讨论了一下接口的使用规则以及相关的应用...

    dot Net中抽象类与接口的区别

    详细介绍了dot Net中抽象类与接口的区别 3.1 相同点 • 都不能被直接实例化,都可以通过继承实现其抽象方法。 • 都是面向抽象编程的技术基础,实现了诸多的设计模式。 3.2 不同点 • 接口支持多...

    java高级类操作 接口与抽象类的操作

    circle Rectangle等类在接口中计抽象类中的用法 抽象类 接口多态 public class Polymorphism { public static void main(String args[]) { Triangle t=new Triangle(5.0,2.0); t.show_area(); Rectangle r=...

    接口知识点总结

    3)接口与接口之间可以继承 如: public interface InterfaceA extends InterfaceB{} 4)类可以实现接口,一个类可以多实现接口 如: public class ClassName implements InterfaceA,InterfaceB{} 5)一个类如果实现...

    浅析Java抽象类和接口的比较

    abstract class和interface是Java语言中对于抽象类定义进行支持的两种机制,正是由于这两种机制的存在,才赋予了Java强大的面向对象能力。

    JAVA中抽象类与接口的区别

    Abstractclass和interface是Java语言中对于抽象类定义进行支持的两种机制,正是由于这两种机制的存在,才赋予了Java强大的面向对象能力

    接口、多重接口实现、抽象类、类型转换

    接口、接口实现、抽象类、类型转换一、什么是接口 interface二、如何定义接口和使用接口三、接口多重实现四、抽象类与接口比较五、instanceof 运算符补充 – 类型转换 一、什么是接口 interface 接口的概念:接口就是...

    Java学习笔记---15.面向对象编程10-Java中final关键字,抽象类与接口

    好啊好啊 抽象类与接口是Java中最重要部分之一,这里用较大的篇幅来做下这部分的笔记. 1. final关键字 在Java中, 可以使用final关键字修饰类、方法以及成员变量。 (1).final标记的类不能被继承; (2).final标记...

    C++中抽象类和接口的区别介绍

    抽象类(abstract class)和接口(interface)的概念是面向对象设计中常用的概念, 也是比较容易混淆的概念. 在这里, 我提出一种区分它们的思路

    java类和对象,上转型,接口回调

    interface UnitPrice { public double unitprice( ); //返回商品的单价 } (1)编写电视机类、计算机类和手机类来实现接口UnitPrice。 (2)编写一个公共类,其中包含main方法和static double get(UnitPrice u)方法...

Global site tag (gtag.js) - Google Analytics