Android基础之Java接口

作者: silencezwm | 来源:发表于2016-07-19 22:48 被阅读428次


    一、接口(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() {
    
        }
    }
    

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

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



    相关文章

      网友评论

        本文标题:Android基础之Java接口

        本文链接:https://www.haomeiwen.com/subject/oiqvjttx.html