zoukankan      html  css  js  c++  java
  • java====interface接口

    package cn.china;
    abstract class AbsDemo{
        abstract void show1();
        abstract void show2();
    }
    /**
     *当一个抽象类中的方法都是抽象的时候,这时可以将该抽象类用
     *另一种形式定义和表示,就是 接口 interface
     *
     *定义接口使用的关键字不是class,是interface。
     **/
    interface Demo5{
        public static final int NUMBER=4;
        public abstract void show1();
        public abstract void show2();
    }
    /**
     * 类与类之间是继承关系,类与接口是实现关系。
     * 接口不能实例化
     * 只能由实现了接口的子类并覆盖了接口中所有的抽象方法后,该子类才可以实例化
     * 否则,这个子类就是一个抽象类*/
    class DemoImpl implements Demo5{
        public void show1(){}
        public void show2(){}
    }
    /**
     * 对于接口当中常见的成员,而且这些成员都有固定的修饰符
     * 1、全局常量:public static final
     * 2、抽象方法 public abstract
     * 由此得出结论,接口中的成员都是公共的权限。*/
    
    /**
     * java中不支持多继承,因为会出现调用的不确定性。
     * 所以java将多继承进行改良,java中变成多实现。
     * 一个类可以实现多个接口*/
    interface Aa{
        public abstract void show6();
        
    }
    interface Bb{
        public abstract void show6();
    }
    class Test1 implements Aa,Bb{
        public void show6(){
            
        }
        
    }
    /**
     * 一个类在继承另一个类的同时,还可以实现多个接口
     * 接口与接口*/
    class q{
        public void method(){}
    }
     class Test2 extends q implements Aa,Bb{
        public  void show6(){
            
        }
        interface cc{
            void showa();
        }
        interface mm{
            void showb();
        }
        interface qq extends cc,mm{//接口与接口可以多继承关系,而且接口可以多继承
            void function();
        }
        class ww implements qq{
            public void showa(){}
            public void showb(){}
            public void function(){}
        }
    }
     /**
      * 抽象类与接口的异同点:
      * 相同点:都是不断向上抽取而来的
      * 不同点:
      * 1、抽象类需要被单继承abstract,接口需要被多实现implements
      * 2、抽象类中可以定义抽象方法和非抽象方法,此类继承后可以直接使用非抽象方法。
      * 接口中只能定义抽象方法,必须由子类去实现
      * 3、抽象类是 is a关系在定义该体系共性能容;接口是like a关系,定义体系的额外功能。
      * 
      * 例: 学生有学习功能  可以被提取定义抽象类  ;
      * 学生抽烟功能, 是额外功能  使用interface 接口定义
      * 
      * 例:
      * 犬按功能分,有导盲犬,搜救犬
      * abstract class 犬{
      * abstract void 吼叫();
      * }
      * class 导盲犬 extends 犬 implements 导盲{
      * public void 吼叫(){}
      * public void 导盲(){}
      * }
      * interface 导盲{
      * abstract void 导盲();
      * }*/
     //在不同的问题领域中,有不同的分析方式。
     /**
      * 笔记本电脑使用,
      * 为了扩展笔记本功能,担日后出现什么功能设备不知道
      * 
      * 定义一个规则,只要日后出现的设备都符合这个规则就可以了
      * 规则在java中就是接口 interface*/
    // class Mouse{
    //     
    // }
    //class Bookpc{
    //    public static void main(String[]args){
    //        useMouse(new Mouse());
    //    }
    //    public static void useMouse(Mouse m){
    //        m.open();
    //    }
    //}
     interface USB{ //暴漏规则
         public abstract void open();
         public abstract void close();
     }
     public class Interface{
            public static void main(String[]args){
    //            DemoImpl D=new DemoImpl();
    //            System.out.println(D.NUMBER);
    //            System.out.println(DemoImpl.NUMBER);
    //            System.out.println(Demo.NUMBER);
                // TODO Auto-generated method stub
    //            Test1 t=new Test1();
    //            t.show6();
    
                //useUSB(null);
                UPan U=new UPan();
                useUSB(U);//功能扩展了
            }
            //使用规则
            public static void useUSB(USB u){//接口类型的引用,用于接收(指向)接口子类的对象。
                u.open();
                u.close();
            }
            //实现规则
        class UPan implements USB{
                public void open(){
                    System.out.println("UPan open");
                }
                public void close(){
                    System.out.println("UPan close");
                }
                
            }
     }
  • 相关阅读:
    css3学习 之 css选择器(结构性伪类选择器)
    flash如何实现Enumeration
    带参数的正则匹配
    css学习记录(overflow:hidden)
    JavaScript的函数
    HTML5实现网站在windows8中的贴靠
    Modernizr 让网站进行优雅降级
    ASP.NET Web API教程(三) 增删改
    Compat Inspector 微软内部使用的兼容性检测工具
    Javascript 高级手势
  • 原文地址:https://www.cnblogs.com/wangyinxu/p/6520597.html
Copyright © 2011-2022 走看看