Java面向对象编程之接口·7

  • 什么是接口
    • 抽象方法的集合,接口通常以interface来声明,一个类通过继承接口的方式,从而来继承接口的抽象方法
    • 语法

interface 名称 [extends 其他的接⼝名]
 {  
     // 声明变量 
    // 抽象⽅法 int getMoney(); 
 }
接口的特点

  

  • 接口的特点
    • 接口的方法都是抽象方法,默认都是public abstract ,其他修饰符都会报错
    • 接口中可以含有变量,但是接口中的变量会被隐性的指定为public static final
    • 类描述对象的属性和方法,而接口则包含类要实现的方法
    • 接口无法被实例化,需要被实现才行
    • 一个实现接口的类,必须实现接口内所描述的所有方法,否则就必须声明为抽象类
  • 类和接口的区别
    • 接口没有构造函数
    • 接口里可以有静态方法和方法体
    • 接口中所有的方法都必须是抽象方法(JDK8以后就不是了)
    • 接口不是被类继承了,而是要被类实现
    • 接口支持多继承,类不支持多个类继承
  • 接口的实现implements
    • 当类实现接口的时候,类要实现接口中所有的方法,不然类必须声明为抽象的类,使用implements关键字实现所有接口
    • 语法

class 类名 implements 接⼝名称[, 其他接⼝名称, 其他接⼝名称]{ 
        //要实现的⽅法
 }

  

  • JDK8新特性
    • interface中可以有static方法,但必须有方法实现体,该方法只属于该接口,接口名直接调用该方法
    • 接口中新增default关键字修饰的方法,default方法只能定义在接口中,可以在子类或子接口中被重写,default定义的方法必须有方法体
    • 父接口的defalut方法如果在子接口或子类被重写,那么子接口实现对象,子类对象,调用该方法,以重写为准
    • 本类,接口如果没有重写父类(即接口)的defalut方法,则在调用default方法时,使用父类定义的defalut方法逻辑

public interface IPay{
 // static修饰符定义静态⽅法 
 static void staticMethod() { 
 System.out.println("接⼝中的静态⽅法"); 
 } 
 // default修饰符定义默认⽅法 ,默认⽅法不是抽象⽅法,可以不重写也可以重写 
 default void defaultMethod() {
  System.out.println("接⼝中的默认⽅法");
   } 
   }

  

Bug? 不存在的!
原文地址:https://www.cnblogs.com/mrchenyushen/p/14758055.html