zoukankan      html  css  js  c++  java
  • java为什么要定义接口等相关解释

    1、接口的作用是实现多重继承  因为只能继承一个类(规定的)

    2、一个类只能继承一个父类,但是可以实现一个或多个接口

    3、abstract关键词能让你在类里创建一个或多个没有定义的方法—你给出接口,但是留一部分没做定义,这部分由它的派生类来实现。而interface关键词则创建了一种完全抽象的,根本不提供实现的类,它不仅是一种是抽象类的极端表现的形式,而且是一种能让你将一个对象上传到多个基类的手段。它提供了类似C++的“多重继承(multiple inheritance)”的功能。

        Interface是对abstract关键词的进一步强化,它能让你定义类的形式:方法名,参数列表,返回值,它的方法不用特别声明都是public 的。Interface也可以包含数据成员,但是它天生就是static和final的,准确得说,它不是接口的组成部分,而是保存在这个接口的动态存储 区。Interface的意思是“所有”“实现”这个接口的类都应该长成这个样子,只要用到了这个interface都知道它有哪些方法可以调用。当你 implements一个interface的时候,你必须把这个interface的方法定义成public的,不这样java编译器就会报错。

        Java的多重继承,由于interface不带任何实现——也就是说interface和内存无关——因此不会有谁去阻止interface之间的结 合。这一点很重要,因为有时你会遇到“x既是a又是b 还是c”这种将多个接口结合在一起的行为,被称为“多重继承”。Java并不强制你必须去继承abstract或“具体”类,但是你只能继承一个非 interface的类,所有别的基类元素都必须是interface,你
    只需把他们放在implments关键词后面,用逗号隔开,你可以实现任意多个interface;也可以把这个类上传到interface。
    接 口也可以继承,通过继承来扩展interface,加入新的方法,也可以通过继承将多个接口合并成新的interface接口继承还有其特殊的方面就是可 以一次继承多个接口,通常extends只用于类,但是由于一个接口可以由多个interface拼接而成,因此在创建新的接口的时候可以用 extends表示多个“基接口”,base Interface之间要用逗号分隔。

    4、接口可用来实现多重继承,java中多重继承,定义类时,只可有一个父类。但是每个类可以实现多个接口,以这种方式来实现多重继承。
    5、接口定义了一组方法,这些方法可以供给其它类来实现。就像“司马药师”兄弟说得,很通俗。而类在实现接口的方法时,却可以有不同的方式,每个类实现同一个接口中同一个方法的代码可以不相同。

    引用参考http://www.cnblogs.com/yqskj/articles/2053755.html

    关于接口的详细内容,请看《Thinking in JAVA》接口一章;
    关于接口的高级用法见《JAVA与模式》接口专题

  • 相关阅读:
    vs code python 关于无法找到文件路径的问题 No such file or directory
    vs2017 c# 控制台 输出中文显示问号 ; vs2017 c# 控制台 输出中文显示乱码
    web页面实现指定区域打印功能
    html 实现动态在线预览word、excel、pdf等文件(方便快捷)
    vuetify使用时遇到的坑:默认颜色显示不了
    【VS Code】中node.js代码自动补全的方法
    vue-property-decorator使用指南
    关于webpack,babel,以及es6和commonJS之间的联系(转)
    tslint.json的配置项说明
    [TypeScript] vs code TSLint常见错误解决方案
  • 原文地址:https://www.cnblogs.com/lusid/p/5690724.html
Copyright © 2011-2022 走看看