博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android基础之Java接口
阅读量:7290 次
发布时间:2019-06-30

本文共 1766 字,大约阅读时间需要 5 分钟。



一、接口(interface)

1.1 初识接口
我们都知道创建一个类特别简单,同样,我们创建接口也如此,只需将class替换成interface即可。

/**  * 创建一个接口:钱  */public interface IMonery{    /**     * 印钞操作     * @param number    数量     */    void printMonery(int number);    /**     * 花钱     */    void spendMonery();}

就是如此简单,创建的接口,实质上就是一个完全的抽象类(被abstract修饰的类)。

所以我们所定义的方法名、形式参数名和返回类型都是可以自行定义,但是不允许含有方法体,并且Java规定实现(使用implements)了该接口后,就必须同时重写该接口中所定义的所有方法。如下:

/**  * 新建类: 你  * 并且实现了IMonery接口  */public class Yous implements IMonery{    @Override    public void printMonery(int number) {    }    @Override    public void spendMonery() {    }}

这样,你就轻松具备了印钞和花钱的异能了,哈哈。

1.2 接口与抽象类

上面我提到了接口实质上就是一个完全被抽象的类。在这里我们小聊一会抽象类。
被abstract修饰的类就叫抽象类
被abstract修饰的方法就叫抽象方法
普通类继承抽象类后,就必须重写父类中的抽象方法。
如果是抽象类继承抽象类,那我们就可以选择不重写、部分重写或完全重写父类中的抽象方法
同样道理,如果是抽象类实现了某个接口,原理同上。

/**  * 新建抽象类: 我自己  * 在这里我选择了不重写接口中的任何方法  */public abstract class MySelf implements IMonery{}

1.3 接口的多重继承

瞬间有点小崩溃,不是说类只能单一继承吗?没错呀,类是只能单一继承,但是接口稍稍有点不同,它具备多重继承的能力,是不是感觉很棒。该下代码你只需花上一分钟:

/**  * 创建一个接口:钱  */public interface IMonery{    /**      * 印钞操作      * @param number    数量      */    void printMonery(int number);    /**      * 花钱      */    void spendMonery();}/**  * 创建新接口:识别  */public interface IIdentify{    /**      * 识别钞票的方法      */    void identify();}/**  * 创建一个接口: 赚钱  *   * 高能点:这里接口进行了多重继承,你可得仔细哦  *   */public interface IEarnMonery extends IMonery, IIdentify{    /**      * 赚钱动作      */    void earnMonery();}/**  * 创建新类,并实现IEarnMonery接口  */public class SuperYours implements IEarnMonery{    @Override    public void earnMonery() {    }    @Override    public void printMonery(int number) {    }    @Override    public void spendMonery() {    }    @Override    public void identify() {    }}

此一时,彼一时;你现在的功能已经特别强大了,集“印钞”、“花钱”、“赚钱”和“识别真假钞票”于一体,你想想都开心啦~

总之,接口的多重继承,只需在接口之间用逗号隔开即可。



转载地址:http://nacjm.baihongyu.com/

你可能感兴趣的文章
C# 创建 Access 库表
查看>>
arm-linux-guneabihf-g++ no such file or dirctory
查看>>
AsyncTask和Handler对比
查看>>
Struts2应用开发视频教程与源码合集
查看>>
C++ 服务器端写出数据时意外停止问题
查看>>
关于Mantel Test
查看>>
django显示SQL语句
查看>>
SecureCRT连接Mysql乱码
查看>>
Classes inside interface
查看>>
P2P行业风险分析与安全防御
查看>>
《创业者--互联网+、资本+、文化+ 创业箴言》
查看>>
NYXImagesKit
查看>>
PutioKit
查看>>
JHTickerView
查看>>
proguard
查看>>
Mac上常用的命令收集
查看>>
开源 免费 java CMS - FreeCMS1.5-简历管理
查看>>
centos7安装docker
查看>>
Mongodb 高级应用篇
查看>>
JVM_bind
查看>>