• 【JAVA】接口(一)


    一、接口的概念

      接口是一种更彻底的抽象。接口是从多个相似类中抽象出来的规范,接口不提供任何实现,接口体现的是规范和实现分离的设计哲学。

    二、接口的定义

      接口定义不再使用class关键字,而是使用interface关键字。

      以下是定义接口的基本语法:

      【修饰符】interface 接口名 extends 父接口1,父接口2...

      {

        //常量定义

        //抽象方法定义

      }

    • 修饰符只能是public 或者省略,省略的话就是包访问级别,即只有在同一个包下才能访问此接口。
    • 一个接口可以有多个父类,但是只能继承,不能实现接口。
    • 接口里定义的是多个类共同的公共的行为规范,因此类中定义的Field、方法、内部类、枚举类都是public访问权限。
    • 接口中的方法只能是抽象方法,由于abstract不能和static共同来修饰一个方法,所以接口中的所有方法总是public abstract来修饰的,可以缺省不写,默认会加上的。
    • 接口中定义的Field是接口相关的,而且只能是常量,所以接口中定义的Field都是public static final 修饰的,可以缺省不写,系统会默认加上。
    • 接口中不能定义构造器和初始化块
    • 接口中可以定义内部类、枚举类、接口,默认都是使用public static修饰,而且只能是public static 修饰。

      下面我们看一下接口定义的例子:

      

    package interfaceDemo;
    
    public interface OutPut {
    
        //接口中定义的Field只能是常量
        int MAX_CACHE_LINE = 50;
        
        //这句话和上面那句话是等价的
        //public static final int MAX_CACHE_LINE = 50;
        
        //接口中定义的方法只能是抽象的,没有方法体
        void out();
        
        void getData(String msg);
    }

    三、接口的继承

      接口和类不一样,它是支持多继承的。多个父接口跟在extends关键字后面,以逗号隔开。和类继承一样,接口继承一个父接口的时候,会获得父接口中定义的所有的抽象方法以及常量。

      

    public interface InterfaceA {
        int A = 1;
        void print();
    }
    
    public interface InterfaceB {
        int B = 2;
        void say();
    }
    
    public interface InterfaceC extends InterfaceA, InterfaceB{
        int C = 3;
        
        public static class Test
        {
            public static void main(String[] args) {
                System.out.println(InterfaceC.A);
                System.out.println(InterfaceC.B);
                System.out.println(InterfaceC.C);
            }
        }
    }

      输出结果为:

      1
      2
      3

  • 相关阅读:
    centos7系统初始化
    瀑布流无限加载infinitescroll插件与masonry插件使用
    网页前端导出CSV,Excel格式文件
    js添加收藏夹
    Fiddler修改http请求响应简单实例
    Nodejs的Gruntjs使用一则
    Jquery插件validate使用一则
    PostgreSQL操作-psql基本命令
    SSH连接时出现Host key verification failed的原因及解决方法以及ssh-keygen命令的用法
    在ubuntu20.04上设置python2为默认方式
  • 原文地址:https://www.cnblogs.com/sister/p/4712306.html
Copyright © 2020-2023  润新知