zoukankan      html  css  js  c++  java
  • java通过继承来扩展接口

    接口主要是为了向上转型,从而使基类(接口方法)更具灵活性!不想废话,看例子:

    /**
     * 
     */
    package interfaces;
    
    interface Monster{
        void menace();
    }
    
    interface DangerousMonster extends Monster{
        void destory();
    }
    
    interface Lethal{
        void kill();
    }
    
    class DragonZilla implements DangerousMonster{
        public void menace(){
            System.out.println("DangerousMonster menace()");
        }
        
        public void destory(){
            System.out.println("DangerousMonster destory()");
        }
    }
    
    interface Vampire extends DangerousMonster,Lethal{
        void drinkBlood();
    }
    
    class VeryBadVampire implements Vampire{
        public void menace(){
            System.out.println("VeryBadVampire menace()");
        }
    
        public void destory() {
            // TODO Auto-generated method stub
            System.out.println("VeryBadVampire destroy()");
        }
    
        public void kill() {
            // TODO Auto-generated method stub
            System.out.println("VeryBadVampire kill()");
        }
    
        public void drinkBlood() {
            System.out.println("VeryBadVampire dinrkBlood()");
            
        }
        
    }
    public class HorrorShow {
        static void u(Monster b){b.menace();}
        static void v(DangerousMonster d){
            d.menace();
            d.destory();
        }
        static void w(Lethal l){
            l.kill();
        }
        public static void main(String[] args) {
            // TODO Auto-generated method stub
            DangerousMonster barney = new DragonZilla();
            u(barney);
            v(barney);
            
            Vampire Vlad = new VeryBadVampire();
            u(Vlad);
            v(Vlad);
            w(Vlad);
        }
    
    }
    结果
    DangerousMonster menace()
    DangerousMonster menace()
    DangerousMonster destory()
    VeryBadVampire menace()
    VeryBadVampire menace()
    VeryBadVampire destroy()
    VeryBadVampire kill()
  • 相关阅读:
    帧同步优化难点及解决方案
    四元数
    臭鼬管理法
    十分钟理解Gradle
    深入理解Android之Gradle
    走出体制的臭鼬工厂,臭鼬著名的“14条”管理原则
    Unity5-ABSystem(五):AssetBundle内存
    Unity5-ABSystem(四):AssetBundle依赖
    Unity5-ABSystem(三):AssetBundle加载
    ASP.NET Core搭建多层网站架构【2-公共基础库】
  • 原文地址:https://www.cnblogs.com/fxyfirst/p/3778629.html
Copyright © 2011-2022 走看看