2020.12.11

2020.12.11

接口

1.定义接口

public interface 接口名{

//接口成员

接口是一个不能实例化的类型。接口类型的定义类似于类的定义。

2.接口的规则

(1)接口中可以包含属性,但是属性必须是常量,也就是static final修饰的。static和final可以省略,若省略的话在编译时JVM会自动为接口的属性添加关键字static final。例如:

public interface ICimbTree{

static final int AGE=0;

相当于

public interface ICimbTree{

int AGE=0;

(2)接口中的属性访问修饰符是public的,可以省略,若省略了public,那么在编译的时候,JVM会自动为接口属性添加public。

例如:

public interface IClimbTree{

public int AGE=0;

}

相当于

public interface IClimbTree{

int AGE=0;

}

(3)接口名的访问修饰符与类相同,可以是public和默认。

例如:

interface IClimbTree{

同包可以访问

public interface IClimbTree{

任何地方都可以访问

(4)接口中可以定义方法,接口中定义的方法必须是abstract方法,必须是public的方法。其中的abstract和public可以省略,若省略了编译时JVM会自动添加abstract和public

例如:

public interface IClimbTree{

public abstract void climbTree();

相当于

public interface IClimbTree{

void climbTree();

(5)接口中不允许有实现的方法。

(6)接口不能实例化

3.接口的作用

接口中的方法都是抽象方法,因此接口不允许实例化,接口也是定义规范的。所以接口的作用与抽象类相同。

4.接口的使用

  • 子类与父类之间是继承关系
  • 子类与接口之间是实现关系
  • 一个子类可以继承一个父类,可以实现多个接口

5.接口与抽象类的区别

区别 抽象类 接口
多继承 子类只能继承一个直接抽象类 子类可以实现多个接口
实现 子类使用extends继承抽象类 子类通过implements实现接口
成员 抽象类中可以有实例成员、静态成员、抽象方法。抽象类中的成员方法不能用default关键字修饰符 接口中只能有常量、抽象方法。JDK8.0及其以后的版本中可以有static方法和default方法
成员变量修饰符 抽象类中可以定义常量,也可定义变量 接口中只能定义变量(public static final修饰的变量)
子类实现 子类在实现抽象方法时不允许缩小访问权限 子类在实现抽象方法时必须指定public权限
构造函数 抽象类可以有构造函数 接口中不能定义构造函数
最高层 类的最高层是Object 接口没有最高层
相同点 两者都不能实例化;都是引用类型;都可以包含抽象方法

标签

评论


© 2021 成都云创动力科技有限公司 蜀ICP备20006351号-1