范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

java接口interface顶级解说

  引言
  接口 这个词在生活中我们并不陌生。
  在中国大陆,我们可以将自己的家用电器的插头插到符合它插口的插座上;
  我们在戴尔,惠普,联想,苹果等品牌电脑之间传输数据时,可以使用U盘进行传输。
  插座的普适性是因为大部分都是 国标 的;U盘可以插到这些电脑上,是因为都遵循了USB2.0或者USB3.0的标准。
  在遵循相同标准的前提下,就出现了接口。 接口的定义
  由引言可知, 接口就是多个类之间的公共规范。
  我们知道,普通类的定义是这样的 public class 类名{      }
  接口的定义把 class 换成 interface 便可以了,如下所示: public interface 接口名{      }接口中定义抽象方法
  接口中抽象方法的定义如下: public abstract 方法返回类型 方法名();
  其中public和abstract是可以 省略 的。从而,可以简写为如下形式: 方法返回类型 方法名();接口的抽象方法的使用
  接口是不能new对象实例的。 那我们怎么调用接口的抽象方法呢?
  我们需要新定义一个类来 实现 这个接口,然后覆盖重写接口中所有的抽象方法。其中实现接口的类定义方式如下: public class 类名 implements 需要实现的接口名{  //重写所有抽象方法 }
  比如,可以定义一个接口和一个实现类,然后再定义一个类,来调用方法。 package com.sjdwz;  /**  * @Description 接口示例代码  * @Date 2022/3/17  * @Created by 随机的未知 sjdwz.com  */ public interface MyInterfaceStudy1 {     public abstract void test01(); }package com.sjdwz;  /**  * @Description MyInterfaceStudy1接口的实现  * @Date 2022/3/17  * @Created by 随机的未知 sjdwz.com  */ public class MyInterfaceStudy1Impl implements MyInterfaceStudy1{     @Override     public void test01() {         System.out.println("实现了接口MyInterfaceStudy1的test01方法");     } }package com.sjdwz;  /**  * @Description 接口抽象方法使用测试  * @Date 2022/3/17  * @Created by 随机的未知 sjdwz.com  */ public class MyInterfaceStudyTest1 {     public static void main(String[] args) {         MyInterfaceStudy1Impl myInterfaceStudy1 = new MyInterfaceStudy1Impl();         myInterfaceStudy1.test01();     } }
  注意:如果没有覆盖重写所有的抽象方法,那么本实现类需要是一个抽象类。 接口中定义默认方法
  假设某场景下,我们的接口需要进行升级,必须添加某些方法来满足新的需要,如果我们再定义抽象方法的话,那么我们之前实现该接口的所有非抽象类都需要重新进行修改。
  那么有没有一种办法,能够让我们不改动接口实现类的代码就能完成接口的升级呢?
  在Java8中对此给出了答案。
  我们可以在接口中定义默认方法。
  定义方式如下: public default 方法返回类型 方法名(){  //方法里面需要执行的内容 }
  public可以省略。 接口的默认方法的使用
  我们在定义接口的实现类时,不需要对默认方法进行覆盖重写,就可以使用该方法。请看如下的例子:
  接口类的定义 package com.sjdwz;  /**  * @Description 接口的默认方法  * @Date 2022/3/17  * @Created by 随机的未知 sjdwz.com  */ public interface MyInterfaceStudy2 {     default void defaultFucTest01(){         System.out.println("我在defaultFucTest01中,我是一个默认方法,我解决了接口升级的问题");     }     void testAbstarct(); }
  两个实现类的定义 package com.sjdwz;  /**  * @Description TODO  * @Date 2022/3/17  * @Created by 随机的未知 sjdwz.com  */ public class MyInterfaceStudy2Impl implements MyInterfaceStudy2{     @Override     public void testAbstarct() {         System.out.println("我在MyInterfaceStudy2Impl中,我重写了MyInterfaceStudy2中的抽象方法");     } }package com.sjdwz;  /**  * @Description TODO  * @Date 2022/3/17  * @Created by 随机的未知 sjdwz.com  */ public class MyInterfaceStudy2DefaultImpl implements MyInterfaceStudy2{     @Override     public void defaultFucTest01() {         System.out.println("我在MyInterfaceStudy2DefaultImpl中,我重写了MyInterfaceStudy2的默认方法");     }     @Override     public void testAbstarct() {         System.out.println("我在MyInterfaceStudy2DefaultImpl中,我重写了MyInterfaceStudy2的默认方法");     } }
  它们的使用: package com.sjdwz;  /**  * @Description TODO  * @Date 2022/3/17  * @Created by 随机的未知 sjdwz.com  */ public class MyInterfaceStudyTest2 {     public static void main(String[] args) {         MyInterfaceStudy2Impl myInterfaceStudy2 = new MyInterfaceStudy2Impl();         myInterfaceStudy2.defaultFucTest01();         myInterfaceStudy2.testAbstarct();          MyInterfaceStudy2DefaultImpl myInterfaceStudy2Default = new MyInterfaceStudy2DefaultImpl();         myInterfaceStudy2Default.defaultFucTest01();         myInterfaceStudy2Default.testAbstarct();     } }
  输出如下:
  由此可见,接口实现类如果没有重写接口中的默认方法,会去调用接口中的默认方法;如果实现类重写了接口的默认方法,便会调用重写的方法。 接口中定义静态方法
  定义方式如下: public static 方法返回类型 方法名(){  //方法里面需要执行的内容 }
  public可以省略 接口的静态方法的使用
  定义接口如下: package com.sjdwz; /**  * @Description 接口中的静态方法  * @Date 2022/3/17  * @Created by 随机的未知 sjdwz.com  */ public interface MyInterfaceStudy3 {     static void staticFuc(){         System.out.println("我在MyInterfaceStudy3接口中,这是我的静态方法");     } }
  该接口的实现类如下 package com.sjdwz;  /**  * @Description 实现类  * @Date 2022/3/17  * @Created by 随机的未知 sjdwz.com  */ public class MyInterfaceStudy3Impl implements MyInterfaceStudy3{ }
  如果我使用方式如下可以吗?
  强大的Java编辑器已经帮我们提示错误了。这样使用是不可以的。
  正确使用方式时 接口名.静态方法名(参数); 。 package com.sjdwz;  /**  * @Description 接口静态方法的使用测试  * @Date 2022/3/17  * @Created by 随机的未知 sjdwz.com  */ public class MyInterfaceStudyTest3 {     public static void main(String[] args) {         MyInterfaceStudy3.staticFuc();     } }
  输出如下
  接口中定义常量
  定义方式如下 public static final 数据类型 常量名 = 666;
  其中public static final可以省略。
  一般常量名的每个字母都大写,如果时多个单词,使用下划线连接。
  如下所示: int NUM = 666; int DAILY_HOURS = 24;接口中常量的使用
  定义接口如下: package com.sjdwz; /**  * @Description 接口中定义常量  * @Date 2022/3/17  * @Created by 随机的未知 sjdwz.com  */ public interface MyInterfaceStudy4 {     int NUM = 666;     int DAILY_HOURS = 24; }
  实现类如下 package com.sjdwz;  /**  * @Description 实现类  * @Date 2022/3/17  * @Created by 随机的未知 sjdwz.com  */ public class MyInterfaceStudy4Impl { }
  我们可以使用如下吗?
  很明显,又提示错误了。不能使用 实现类.常量 和 实现类的对象.常量 来使用。
  正确使用如下: package com.sjdwz;  /**  * @Description 接口的常量使用测试  * @Date 2022/3/17  * @Created by 随机的未知 sjdwz.com  */ public class MyInterfaceStudyTest4 {     public static void main(String[] args) {         System.out.println("用接口来访问接口中的常量NUM:======"+MyInterfaceStudy4.NUM);         System.out.println("用接口来方法接口中的常量DAILY_HOURS:======"+MyInterfaceStudy4.DAILY_HOURS);     } }
  输出如下:
  原文链接:
  https://sjdwz.com/11171.html

升级鸿蒙系统后微信还能用吗?感谢您的阅读!手机升级鸿蒙系统之后,微信还能使用吗?其实这个问题讨论的是鸿蒙系统的生态问题。鸿蒙的生态问题也是必须或者是着重要解决的问题,如果不能够解决鸿蒙时代问题,那么对于未来的ios14。4对比14。6哪个好?感谢您的阅读!我反而会觉得IOS14。4系统要比IOS14。6系统的体验会更好。我们必须要知道ios14。6系统它确实解决了一些问题增加一些功能,但是这款系统依然会在我看来有一些缺选择电脑,你是颜值党还是配置党?就像做人一样,光有能力,但不修边幅,别人看了会生厌,自然无法融世,如果光修边幅,没有智慧,就像绣花枕头,外表漂亮,里面全是糟糠也不行呀,所以嘛,又要有能力,又要有体面,如此才能融入电视台是自负盈亏吗?电视台是自负盈亏的。媒体都是事业单位企业管理自收自支,当然媒体的营收中也有获得支持的部分。现在大家的阅读和收看都集中到了手机端,原先的报纸电台与电视台,都面临着全新的运营突围。移动如何看待华为官宣鸿蒙后各厂商的态度?华为鸿蒙系统,是中国人的操作系统,在万物互联的互联世界里,由政府机关做起,公务办事很行车站机场家电汽车医院一切都是鸿蒙系统,人们只要拿起鸿蒙系统的手机,就可以和生活息息相关的万物互告别滴滴,入手美团打车,大家怎么看?不要对美团抱太多信心。美团现在纵容司机刷数据。也就是为了达到融资的目的而已。根本就没想过长远发展。不过现在还在没证跑车的司机,其实想想,应了那句老话,可怜之人必有可恨之处。曾经做个华为云手机可以替代5nm或者3nm的高端旗舰手机吗?9月1号,华为宣布启动云手机的公开测试。云手机的概念立刻吸引了世人的眼球。有人说云手机能够让华为彻底摆脱缺乏高端芯片的困境,同时也可以甩开美国对华为的芯片封锁。因为不需要那么多复杂网购平台打假难?亚马逊斥巨资销毁逾200万件假货据美国有线电视新闻网商业新闻网站报道,亚马逊去年销毁了超过200万件疑似假货,这些赝品是由第三方卖家寄往其订单执行中心的,这是亚马逊网站打击假冒伪劣商品行动的一部分。当地时间5月1中国汽车销量连涨13个月!4月新能源车销量激增180据路透社近日报道中国汽车工业协会(CAAM)的数据显示,4月份中国汽车销量与去年同期相比增长8。6,且连续第13个月保持增长。报道称,中国是全球最大的汽车市场,引领该行业从新冠疫情外媒应用务实令中国机器人优势显现来源经济参考报全球工业机器人应用需求在新冠疫情期间持续扩大。外媒近期纷纷表示,中国企业拥有在细分场景的解决方案,不仅成为近期机器人领域的亮点,还有望在全球市场竞争中占据优势。俄罗斯中芯7nm还没消息,中国院士又呼吁放弃EUV,高端芯片路有多难?本文原创,请勿抄袭和搬运,违者必究中国院士多次表态国产芯片处在成熟工艺水平,相对来说,在28nm到90nm领域,中国有一定的参与感。只要稍微努力,实现这类成熟工艺制程的自给自足不成
广州车展超前看丨多款重磅轿车蓄势待发,实力不容小觑不知不觉中,2021年已经进入尾声,同时第十九届广州国际汽车展览会也将于一个月后的11月1928日拉开帷幕,不少参展的重磅车型已经有了一些消息,今天小编就先给大家预热一波,看看那些广州车展超前看丨SUV成为主力?原来这几款新车都是狠角色2021年第十九届广州国际汽车展览将在11月19日11月28日开展,不少车型将在此次车展中亮相,而我国作为SUV车型的消费大国,SUV绝对会成为本次车展追捧的热点之一。今天小编就给每次10分钟跟我学Python(第七次课)大家好!我是幻化意识流,简称意识流。现在我们继续Python的学习。我们打开IDLE。来编写人生的第一个Python程序。今天的课程是了解单独的Python程序文件如何独立运行。如甲亢等甲状腺疾病是否会引起肢体偶尔拉伸时剧痛?关于这个话题,是个问题,也是个探讨。今日早上起床,我只伸了个懒腰,右上臂后侧肌肉拉伸时剧痛无比,阵痛大概1分钟后慢慢缓解。阵痛时身体不敢动,那种痛感发生时,感觉要窒息了。我强忍着,简测AENZR充电宝PD快充18W移动电源10000毫安随着越来越多的人购买高性能的手机,而手机功耗使得人们日常缺电应急。于是,各式各样的充电宝在市面上横飞,真正能做好移动电源的厂商也就只有知名手机或配件厂商。今天博主就给大家简测一下A电竞玩家必备酷炫耳机!1MoreSpearheadVR电竞头戴式耳机大家好!今天给大家带来的是Zaaap!平台提供的1MoreSpearheadVR电竞头戴式耳机!1More想必大家也比较熟悉了,国内知名的耳机厂商,周杰伦吴青峰,都是其代言人,其耳来自北欧神话的女神耳机kineraIDUN今天给大家带来一位新朋友Kinera,今天的主角是他们家的百元塞IDUN。想必大家对于kinera这个品牌也感到陌生,那么今天我先给大家介绍一下这家在国外赫赫有名的耳机公司吧!Ki新奇设计,锐利异类FIILCC大家好,今天给大家带来的是FIIL耳机新品FIILCC耳机。在TWS耳机都往入耳式做的趋势下,FIIL推出的这款半入耳式耳机到底是怎么样的呢?那就跟着我的文章来看看FIILCC到底乐歌S6Pro智慧工作台不仅仅是增高最近是收到了乐歌寄来的乐歌S6Pro这款智慧工作台,那么经过一番体验后就给大家出这么一期评测来看看这款智慧工作台到底有多智慧!工作台颜值很在线,白色为主色调再配上一圈浅色布艺包围,PaMuSlideMini测评国产真无线蓝牙耳机也能这么棒!大家好,今天给大家带来的是这款派美特家的PaMuSlideMini!作为一款真无线蓝牙耳机,它到底有何过人之处呢?请看我为大家介绍这款不一般的产品!先来看看外观吧!包装使用的是黑底小米10Pro影像方向真的错了?对比OPPO荣耀确实错了相机是手机近年来发展最猛的一个地方,不仅后置摄像头的数量越来越多,而且像素和传感器的底也越来越高,最具代表的就是一亿像素主摄的小米10。不过近期随着OPPOFindX2系列的推出,