JAVA接口


接口

如果一个类中所有的方法都是抽象方法的话,可以将这个类重新定义——接口

接口是一个特殊的抽象类,用interface 声明,用implements 来实现

接口中所有的方法都是抽象方法,默认修饰符:public abstract

接口不能实例化--特殊的抽象类,不能实例化

接口不能有成员变量,只能存在常量

接口在jdk1.7之前不允许有普通方法,1.8之后可以有普通方法,需要用defult关键字来修饰

类与类之间使用继承,类与接口之间用implements ,表示实现关系 ,继承一定是 is  a 的关系,实现是 has a 的关系

当一个类去实现接口的时候,必须实现接口中的以及接口的父接口中的所有抽象方法,或者将当前类声明为抽象类

接口A想拥有接口B的功能,可以使用继承(同类型之间都是继承),接口允许多继承,类是单继承

一个类能在继承一个类的时候实现一个接口,接口表示的是一种功能,当一个类想拥有这个功能的时候,去实现这个接口就可以了

接口中用多态时,只能调用父类或者子类中重写的父类的方法。不能调用子类特有的方法,想调用可以 new 一个子类的对象来调用或者通过转型来实现         

(转型)父 t =new 子()//默认向上转型
              子 z = (子) t //向下转型,将父型的 t 重转位子型的 z

接口声明的方法

public interface Aaa{
    public abstract void eat();//接口中的所有方法嗾使抽象方法
    viod  run();//可以省略前面的修饰 
}

 接口的特点:

  • 接口不能实例化对象
  • 接口没有构造方法
  • 接口中搜友的方法必须是抽象方法,默认:public absctract
  • 接口不能有成员变量(public static final 常量 除外)
  • 接口不是继承,而是实现(implement)
  • 接口支持多实现
  • 一个类可以继承一个类的时候实现多个接口 

 接口使用步骤

  1. 创建接口,声明方法
  2. 创建类,实现接口,实现接口中的方法
  3. 使用实现后的方法执行具体操作

接口与抽象类的区别

接口

抽象类

使用关键字interface

使用关键字abstract class修饰

使用implements来实现

使用exctends来继承

接口中只能有抽象方法(JDK1.7以前)

可以有普通方法和抽象方法

不能有构造法

可以有构造法

只能有常量

可以有成员变量

可以多继承

只能单继承

方法只能是public

方法可以是public,protect,private

相关