iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Java基础第五篇 实施接口
  • 507
分享到

Java基础第五篇 实施接口

2024-04-02 19:04:59 507人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

目录 1、interface2、分离接口的意义3、实施多个接口 4、总结在上一篇文章封装与接口中,private关键字封装了对象的内部成员。经过封装,产品隐藏了内

在上一篇文章封装与接口中,private关键字封装了对象的内部成员。经过封装,产品隐藏了内部细节,只提供给用户接口(interface)。

接口是非常有用的概念,可以辅助我们的抽象思考。在现实生活中,当我们想起某个用具的时候,往往想到的是该用具的功能性接口。比如杯子,我们想到加水和喝水的可能性,高于想到杯子的材质和价格。也就是说,一定程度上,用具的接口等同于用具本身。内部细节则在思考过程中被摒弃。

publicprivate的封装机制,我们实际上同时定义了类和接口,类和接口混合在一起。Java还提供了interface这一语法。这一语法将接口从类的具体定义中剥离出来,构成一个独立的主体。

 1、interface

以杯子为例,定义一个杯子的接口:


interface Cup {
    void addWater(int w);
    void drinkWater(int w);
}


Cup这个interface中定义了两个方法的原型(stereotype): addWater()和drinkWater()。一个方法的原型规定了方法名,参数列表和返回类型。原型可以告诉外部如何使用这些方法。

在interface中,我们应注意

  • 不需要定义方法的主体
  • 不需要说明方法的可见性

特别注意第二点,interface中的方法默认为public。正如我们在封装与接口中讲到的,一个类的public方法构成了接口。所以,所有出现在interface中的方法都默认为public。

我们可以在一个类的定义中实施接口,比如下面的MusicCup (可以播放音乐的杯子):


class MusicCup implements Cup 
{
    public void addWater(int w) 
    {
        this.water = this.water + w;
    }

    public void drinkWater(int w)
    {
        this.water = this.water - w;
    }

    private int water = 0;
}

我们用implements关键字来实施interface。一旦在类中实施了某个interface,必须在该类中定义interface的所有方法(addWater()和drinkWater())。类中的方法需要与interface中的方法原型相符。否则,Java将报错。

 在类中可以定义interface没有提及的其他public方法。也就是说,interface规定一个必须要实施的最小接口。比如下面的waterContent()方法就没有在Cup接口中规定原型:


class MusicCup implements Cup 
{
    public void addWater(int w) 
    {
        this.water = this.water + w;
    }

    public void drinkWater(int w)
    {
        this.water = this.water - w;
    }

    public int waterContent()
    {
        return this.water;
    }

    private int water = 0;
}

 

2、分离接口的意义

我们使用了interface,但这个interface并没有减少我们定义类时的工作量。我们依然要像之前一样,具体的编写类。我们甚至于要更加小心,不能违反了interface的规定。既然如此,我们为什么要使用interface呢?

事实上,interface就像是行业标准。一个工厂(类)可以采纳行业标准 (implement interface),也可以不采纳行业标准。但是,一个采纳了行业标准的产品将有下面的好处:

  • 更高质量: 没有加水功能的杯子不符合标准。
  • 更容易推广: 正如电脑上的USB接口一样,下游产品可以更容易衔接。

如果我们已经有一个Java程序,用于处理符合Cup接口的对象,比如领小朋友喝水。那么,只要我们确定,我们给小朋友的杯子(对象)实施了Cup接口,就可以确保小朋友可以执行喝水这个动作了。至于这个杯子(对象)是如何具体定义喝水这个动作的,我们就可以留给相应的类自行决定 (比如用吸管喝水,或者开一个小口喝水)。

在计算机科学中,接口是很重要的概念。比如任何提供UNIX接口的操作系统都可以称作UNIX系统。linuxMac OSSolaris都是UNIX系统,它们提供相似的接口。但是,各个系统的具体实施(源代码)互不相同。Linux开源的,你可以查看它的每一行代码,但你还是不知道如何去编写一个Solaris系统。

相同的UNIX接口:

3、实施多个接口

一个类可以实施不止一个的interface。比如我们有下面一个interface:


interface MusicPlayer {
    void play();
}
 

我们再来考虑MusicCup类。MusicCup可以看做播放器和杯子的混合体。

所以MusicCup应该具备两套接口,即同时实施MusicPlayer接口和Cup接口:


class MusicCup implements MusicPlayer, Cup
{
    public void addWater(int w) 
    {
        this.water = this.water + w;
    }

    public void drinkWater(int w)
    {
        this.water = this.water - w;
    }

    public void play()
    {
        System.out.println("la...la...la");
    }

    private int water = 0;
}

最后,可以尝试将本文中的interface和类定义放在同一个文件中,并编写Test类,运行一下。

 4、总结

interface, method stereotype, public

implements interface

implements interface1, interface2

到此这篇关于Java基础第五篇 实施接口的文章就介绍到这了,更多相关Java实施接口内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: Java基础第五篇 实施接口

本文链接: https://www.lsjlt.com/news/135360.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Java基础第五篇 实施接口
    目录 1、interface2、分离接口的意义3、实施多个接口 4、总结在上一篇文章封装与接口中,private关键字封装了对象的内部成员。经过封装,产品隐藏了内...
    99+
    2024-04-02
  • Java基础第四篇 封装与接口
    目录1、封装与接口2、对象成员的封装3、类的封装4、总结前言: 总结之前的内容,对象(object)指代某一事物,类(class)指代象的类型。对象可以有状态和动作,即数据成员和方法...
    99+
    2024-04-02
  • Java面试题冲刺第五天--基础篇2
    目录面试题1:说一下抽象类和接口有哪些区别?正经回答:深入追问:追问1:说一说你对抽象类的理解吧,他到底是干啥用的追问2:用抽象类实现一个接口,和普通类实现接口会有什么不同么?追问3...
    99+
    2024-04-02
  • 《Java 基础篇》之函数式接口
    目录 1、函数式接口概述 2、函数式接口做为方法的参数 3、函数式接口作为方法的返回值 3、常用的函数式接口 3.1、Supplier [səˈplaɪə(r)] Supplier接口 3.2、Consumer接口 3.3、Predicat...
    99+
    2023-10-20
    java 开发语言
  • 【Java 基础篇】Java 函数式接口详解
    文章目录 导言一、函数式接口的概念二、函数式接口的语法三、函数式接口的使用方法四、常用的函数式接口总结 导言 函数式接口是 Java 8 引入的重要特性,它允许将函数作为参数传递给方法,或者作为返回值返回。函数式接口主要用于...
    99+
    2023-08-16
    java jvm 开发语言
  • java基础的详细了解第五天
    目录1、String类1.1两种对象实例化方式1.2字符串比较1.3字符串常量是String的匿名对象1.4String两种实例化方式区别1、分析直接赋值方式2、构造方法赋值1.5字...
    99+
    2024-04-02
  • 一篇文章带你了解Java基础-接口
    目录Java基础知识(接口)接口接口的定义接口和抽象的区别接口的格式接口中的主要成分接口的案例接口与接口的关系JDK 8之后的接口新增方法总结Java基础知识(接口) 接口 Jav...
    99+
    2024-04-02
  • Java面试题冲刺第一天--基础篇1
    目录面试题1:Java 中操作字符串都有哪些类?它们之间有什么区别? 正经回答:深入追问:追问1:这三者在效率上怎么说?追问2:那StringBuffer和StringBuffer线...
    99+
    2024-04-02
  • Java基础第二篇方法与数据成员
    目录1、调用同一对象的数据成员2、方法的参数列表3、调用同一对象的其他方法4、数据成员初始化5、总结上一篇文章Java基础 从HelloWorld到面向对象 1、调用同一对象的数据成...
    99+
    2024-04-02
  • Java中如何实施接口
    这篇文章主要介绍了Java中如何实施接口,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。在封装与接口中,private关键字封装了对象的内部成员。经过封装,产品隐藏了内部细节,...
    99+
    2023-06-02
  • Java基础第三篇 构造器与方法重载
    目录1、定义构造器2、初始化方法的优先级3、方法重载4、总结在方法与数据成员中,我们提到,Java中的对象在创建的时候会初始化(initialization)。初始化时,对象的数据成...
    99+
    2024-04-02
  • Java面试题冲刺第十七天--基础篇3
    目录面试题1:JDK1.8的新特性有哪些?接口的默认和静态方法:Lambda 表达式:方法与构造函数引用:函数式接口:Annotation 注解:支持多重注解:新的日期时间 API:...
    99+
    2024-04-02
  • java基础之接口组成更新的实现
    目录1.1 接口组成更新概述1.2 接口中默认方法(JDK8)1.3 接口中静态方法(JDK8)1.4 接口中私有方法(JDK9)1.1 接口组成更新概述 接口的组成 常量:publ...
    99+
    2024-04-02
  • Java基础学习之接口详解
    目录概述定义格式含有抽象方法含有默认方法和静态方法含有私有方法和私有静态方法基本的实现实现的概述抽象方法的使用默认方法的使用静态方法的使用私有方法的使用接口的多实现抽象方法默认方法静...
    99+
    2022-11-13
    Java接口使用 Java接口
  • Java入门基础之抽象类与接口
    目录一.抽象类1.什么是抽象类2.语法规则3.抽象类的作用二.接口1.什么是接口2.语法规则3.实现多个接口4.接口之间的继承三.接口的使用实例1. Comparable 接口2.C...
    99+
    2024-04-02
  • Java基础巩固抽象类与接口详解
    目录1、抽象类1.1、什么是抽象类1.2、抽象类的用法1.3、抽象类特点(限制条件)2、接口2.1、什么是接口2.2、接口的用法2.3、如何使用接口2.4、接口的特点(限制条件)2....
    99+
    2024-04-02
  • Java调用第三方接口封装实现
    目录介绍一、借助feign实现调用二、自己封装请求类三、调用第三方生成token,可以使用策略类实现总结介绍 在Java项目中,会遇到很多调用第三方接口的地方,比如接入微信,其他公司...
    99+
    2023-02-16
    Java调用第三方接口封装 Java调用第三方接口
  • Java面向对象基础知识之抽象类和接口
    抽象类(abstract): 抽象类不能创建实例,它只能作为父类被继承。抽象类是从多个具体类中抽象出来的父类,它具有更高层次的抽象。从多个具有相同特征的类中抽象出一个抽象类,以这个抽...
    99+
    2024-04-02
  • java理论基础函数式接口特点示例解析
    目录一、函数式接口是什么?二、函数式接口的特点三、default关键字四、JDK中的函数式接口举例五、自定义Comparator排序一、函数式接口是什么? 所谓的函数式接口,实际上就...
    99+
    2024-04-02
  • java异步调用第三方接口怎么实现
    在Java中,可以使用多线程或使用异步框架来实现异步调用第三方接口。1. 使用多线程:可以创建一个新的线程来执行第三方接口的调用操作...
    99+
    2023-10-09
    java
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作