纯净、安全、绿色的下载网站

首页|软件分类|下载排行|最新软件|IT学院

当前位置:首页IT学院IT技术

Java实施接口 Java基础第五篇 实施接口

Vamei   2021-09-10 我要评论
想了解Java基础第五篇 实施接口的相关内容吗Vamei在本文为您仔细讲解Java实施接口的相关知识和一些Code实例欢迎阅读和指正我们先划重点:Java实施接口,Java接口下面大家一起来学习吧

在上一篇文章封装与接口中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


相关文章

猜您喜欢

  • Python验证码识别 非常简单的Python识别图片验证码实现过程

    想了解非常简单的Python识别图片验证码实现过程的相关内容吗梦魇762459510在本文为您仔细讲解Python验证码识别的相关知识和一些Code实例欢迎阅读和指正我们先划重点:Python识别验证码,Python识别图片验证码实现下面大家一起来学习吧..
  • Golang 运算符 手把手带你走进Go语言之运算符解析

    想了解手把手带你走进Go语言之运算符解析的相关内容吗我是小白呀在本文为您仔细讲解Golang 运算符的相关知识和一些Code实例欢迎阅读和指正我们先划重点:Golang,运算符,Go语言,运算符下面大家一起来学习吧..

网友评论

Copyright 2020 www.sopisoft.net 【绿软下载站】 版权所有 软件发布

声明:所有软件和文章来自软件开发商或者作者 如有异议 请与本站联系 点此查看联系方式