1、接口(interface)
1.1 初识接口
咱们都知道建立一个类特别简单,一样,咱们建立接口也如此,只需将class替换成interface便可。ide
/** * 建立一个接口:钱 */ public interface IMonery{ /** * 印钞操做 * @param number 数量 */ void printMonery(int number); /** * 花钱 */ void spendMonery(); }
就是如此简单,建立的接口,实质上就是一个彻底的抽象类(被abstract修饰的类)。
因此咱们所定义的方法名、形式参数名和返回类型都是能够自行定义,可是不容许含有方法体,而且Java规定实现(使用implements)了该接口后,就必须同时重写该接口中所定义的全部方法。以下:.net
/** * 新建类: 你 * 而且实现了IMonery接口 */ public class Yous implements IMonery{ @Override public void printMonery(int number) { } @Override public void spendMonery() { } }
这样,你就轻松具有了印钞和花钱的异能了,哈哈。code
1.2 接口与抽象类
上面我提到了接口实质上就是一个彻底被抽象的类。在这里咱们小聊一会抽象类。
被abstract修饰的类就叫抽象类
被abstract修饰的方法就叫抽象方法
普通类继承抽象类后,就必须重写父类中的抽象方法。
若是是抽象类继承抽象类,那咱们就能够选择不重写、部分重写或彻底重写父类中的抽象方法
一样道理,若是是抽象类实现了某个接口,原理同上。blog
/** * 新建抽象类: 我本身 * 在这里我选择了不重写接口中的任何方法 */ 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() { } }
此一时,彼一时;你如今的功能已经特别强大了,集“印钞”、“花钱”、“赚钱”和“识别真假钞票”于一体,你想一想都开心啦~接口
总之,接口的多重继承,只需在接口之间用逗号隔开便可。get