玩命加载中 . . .

接口(18)


接口

官方解释

  • 接口,是Java语言中一种引用类型,是方法的集合,如果说类的内部封装了成员变量、构造方法和成员方法,那么接口的内部主要就是封装了方法,包含抽象方法(JDK 7及以前),默认方法和静态方法(JDK 8),私有方法(JDK 9)后面在学jdk新特性

  • 接口的定义,它与定义类方式相似,但是使用 interface 关键字。它也会被编译成.class文件,但一定要明确它并不是类,而是另外一种引用数据类型。

  • 接口的使用,它不能创建对象,但是可以被实现( implements ,类似于被继承)。一个实现接口的类(可以看做是接口的子类),需要实现接口中所有的抽象方法,创建该类对象,就可以调用方法了,否则它必须是一个抽象
    类。

语法格式:

public interface 接口名称 {
// 抽象方法
// 常量
}

接口具体语法:

  1. 接口也是一种引用类型,可以等同看做类

  2. 接口也是一种引用”数据类型”,编译之后也是一个class字节码文件,但并不是类

  3. 接口中只能出现:常量、抽象方法

    public interface Interface {
        public static final int A=10;   // 定义一个常量
        double PI=3.14;   // 这里定义常量省略public static final,但是系统自动会给你加上
    
        public abstract void m1();       // 定义一个抽象方法
        void  m2();                     // 这里定义常量省略public abstract,但是系统自动会给你加上
    
        // 注意: 在接口中没有成员变量、方法,也无法被实例化
    }
    
  4. 接口其实是一个特殊的抽象类,特殊在接口是完全抽象的

  5. 接口中没有构造方法,无法被实例化

  6. 接口和接口直接可以实现多继承

  7. 一个类中可以实现多个接口,(这里的”实现”可以等同看作”继承”)

  8. 一个非抽象的类实现接口,需要将接口中所有的方法”实现/重写/覆盖”

    interface A {
        public abstract void m3();
    }
    interface B{
        public abstract void m4();
    }
    interface C extends B,A{
        public abstract void m5();
    }
    
    // a类继承A,并覆盖A中的m3方法
    class a implements A{
        public void m3() {
    
        }
    }
    // b类继承接口c,但由于接口c中继承了a、b种方法,所以所以b类继承接口c需要将a、b、c类中所有方法进行覆盖
    class b implements C{
        public void m3() {}
        public void m4() {}
        public void m5() {}
    }
    

接口的作用

  1. 可以使项目分层,所有层都面向接口开发,开发效率提高了

  2. 接口使代码和代码之间的耦合度降低,就像内存条和主板的关系,变得“可插拔可以随意切换。

  3. 接口更像是一个规范两者之间的规范

    现实生活例子

  4. 如果接口和抽象类都能完成某个功能,优先选择接口

    因为接口可以多实现,多继承,并且一个类除了实现接口之外,还可以去继承其他类(保留了类的继承)


文章作者: 小靳同学
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 小靳同学 !
评论
 上一篇
抽象类(17) 抽象类(17)
抽象类 语法格式: [修饰符] abstract class 类名{} 抽象类无法被实例化 虽然抽象类没有办法实例化,但是抽象类也有构
2021-06-08
下一篇 
Java面向对象(01) Java面向对象(01)
面向对象及面向过程区别面向过程:主要是关注点是:实现的具体的过程,因果关系 例子: 例1: 集成显卡的开发思路: 集成显卡是焊接在主
2021-06-08
  目录