interface接口

来源:互联网 发布:用php输出九九加法表 编辑:程序博客网 时间:2024/05/21 08:03
接口定义 
    public interface Pet{
        public abstract void beFriendly();
    }
实现
    public class Dog extends Canine implements Pet{
        public void beFriend(){方法体};
    }

接口的内容全部为抽象,必须由继承者实现。
其直观作用是可以让继承者继承超过一个的来源。

适用场景是:当你需要一个可被继承的特性又不适合加入基类(并非所有子类符合特性)加入接口补充。
比如在animal类下某些类加入宠物特性,
一、如果把宠物方法加入基类中;
明显不是所有动物都应该有宠物特性,而且无法多态哪怕是宠物其宠物方法也不尽相同,
二、把宠物方法设定为抽象类,让每个子类重写;
无疑降低了继承的作用,增加了工作。
三、在需要时直接在子类写方法
没有多态性,也没有类似“合约性”显然宠物是一类动物的特性不是几个需要合约性。
此时接口的补充能力出现了
我们可以写一个宠物接口,让所有需要的子类实现(继承)来补充继承树

不同的继承树可以实现一个接口,一个类也可以实现多个接口。
相比之下继承虽然十分便捷高效,同时也限制了一些设计,那么在你想进一步设计类的实现使用接口
原创粉丝点击