zoukankan      html  css  js  c++  java
  • 接口

    如果不会接口,别说你会java。

    1.接口的基本定义

    如果一个类中只是由抽象方法和全局常量组成。在这中情况下,不会讲其定义为抽象类,二回定义为接口。。接口就是一个抽象类,而且这个类里面只有抽象方法,构造方法都没有。

    interface A {
        public static final String MSG = "Hello "  //global constant
        public abstract void print() ;  //abstract method
    
    }

    接口对象不可能直接使用new()实例化

    接口必须要有子类

    一个子类可以使用 implements关键字实现多个接口。

    接口的子类(如果不是抽象类),必须覆写接口中的全部抽象方法。

    接口的对象利用子类对象向上转型实例化操作。

    范例:

    interface A {
        public static final String MSG = "Hello ";  //global constant
        public abstract void print() ;  //abstract method
    
    }
    interface B{
        public abstract void get() ;
    }
    class X implements A,B{
        public void print(){
            System.out.println("A--print()") ;
        }
        public void get(){
            System.out.println("B--get()") ;
        }
    }
    public class Jiekou {
        public static void main(String arg[]){
            X x = new X() ;
            A a = x ;
            B b = x ;
            a.print() ;
            b.get() ;
        }
    }

    //输出结果 A--print() ;
    //B--get();

    如果主函数中写成

            A a = new X();
            B b = (B) a ;
            b.get() ;
            System.out.println(a instanceof A) ;
            System.out.println(a instanceof B) ;
    结果是两个都是true

    对于子类而言,如果他又要继承抽象类,又要实现接口的话,那么:

    先extends  再implements

    对于接口来说,里面都是抽象方法和全局常数,所以有时候也会省略写 abstract和public static final。

    interface A{
        String MSG = "Hello" ;
        void fun() ;
    }
    但是最好写public void fun();

    一个抽象类智能继承一个抽象类,接口可以继承好多个接口

    interface A{
         public  void funA() ;
    }
    interface B{
        public void funB() ;
    }
    interface C extends A,B{
        public void funC() ;
    }
    
    class X implements C(){
        
    }

    一个子类只能继承一个抽象类,但是可以实现多个接口。

    在java中,接口主要功能是解决单继承局限问题。

    虽然从接口本省的概念上来讲只能由抽象方法和全局常量组成,但是所有的内部结构不受要求限制的,接口里面可以定义普通内部类,抽象内部类。

    接口的内部接口,使用static修饰的时候,相当于外部接口

    interface A{
        public funA() ;
       static interface B{
            public abstract void funB() ;
        }
    
    }
    class X implements A.B{
        public void funB(){
            System.out.println("Hello") ;
        }
    }

    总结:

    接口的三大核心作用:

    1.定义不同层之间的操作标准

    2.表示一种操作能力

    3.表示将服务器的远程方法视图暴露给客户端。

  • 相关阅读:
    Day 20 初识面向对象
    Day 16 常用模块
    Day 15 正则表达式 re模块
    D14 模块 导入模块 开发目录规范
    Day 13 迭代器,生成器,内置函数
    Day 12 递归,二分算法,推导式,匿名函数
    Day 11 闭包函数.装饰器
    D10 函数(二) 嵌套,命名空间作用域
    D09 函数(一) 返回值,参数
    Day 07 Day08 字符编码与文件处理
  • 原文地址:https://www.cnblogs.com/da-peng/p/5125046.html
Copyright © 2011-2022 走看看