Java基础之接口

109 阅读3分钟

「这是我参与2022首次更文挑战的第11天,活动详情查看:2022首次更文挑战

1.1 接口的概述

  • 接口就是一种 公共规范的标准,只要符合规范大家都可以用

  • Java中的接口体现在 对行为的抽象

  • Java中接口是一系列方法的声明,是一些方法特征的集合,一个接口只有方法的特征没有方法的实现,因此这些方法可以在不同的地方被不同的类实现,而这些实现可以具有不同的行为(功能)。

  • 通俗解释:接口可以理解成是一种特殊的类,里面的方法全是公开抽象方法,里面的变量全市公开常量。众所周知,Java是单继承,仅仅只有单继承的话,扩展性就会低,接口的出现就是为了解决这一问题,Java可以多实现,接口是一个标准

1.2 接口的特点

  • 1、接口用关键字 interface 修饰
public interface 接口名 {}
  • 2、类实现接口用 implements ([ˈɪmplɪments] )表示
public class 类名 implement 接口名 {}
  • 3、接口不能实例化,参照多态的方式,通过实现类对象实例化,这叫接口多态
  • 4、接口的实现类:要么重写接口中所有抽象方法,要么是抽象类
  • 5、接口指明了一个类能做什么和不能做什么,是一个类的标准;
  • 6、一个接口就是描述一种能力,一个功能;
  • 7、如果一个类实现了一个接口中要求的所有的方法,然而没有提供方法体而仅仅只有方法标识,那么这个类一定是一个抽象类。抽象方法只能存在于抽象类或者接口中,但抽象类中却能存在非抽象方法,即有方法体的方法。接口是百分之百的抽象类。
  • 8、一个JAVA库中接口的例子是:Comparator 接口,这个接口代表了“能够进行比较”这种能力,任何类只要实现了这个Comparator接口的话,这个类也具备了“比较”这种能力,那么就可以用来进行排序操作了。

1.3 接口成员的特点

  • 1、成员变量:只能是常量,默认修饰符: public static final
  • 2、接口中没有构造方法,因为接口中主要是对行为进行抽象的,是没有具体存在 (如果 一个类没有父类,会默认继承Object类,Object类只有无参构造方法)
  • 3、成员方法:只能是抽象方法,默认修饰符:public abstract
  • 范例
package ceshi;

public interface Inter {
	//1,默认带有public static final
    public int num1 = 10;
    public static final int num2 = 20;
    int num3 = 30; 
    
//2,报错,接口中没有构造方法
//    public Inter(); 报错

	//3,接口中必须是抽象方法
    public abstract void mehtod(); 
    //    public void mehtod(){}; 报错
    void show(); //默认带有public abstract
}

1.4 类和接口的关系

  • 类和类的关系:继承关系只能单继承,但是可以多层继承
  • 类和接口的关系:实现关系,可以单实现,也可以多实现还可以继承一个类的同时实现多个接口
public class IterImpl extends Object implements Inter1,Inter2,Inter3 {}
  • 接口和接口的关系:继承关系,可以单继承,可以多继承
//单继承
public interface Inter3 extends Inter1 {}
//多继承
public interface Inter3 extends Inter1,Inter2 {}

1.5 抽象类和接口的区别

  • 成员区别 抽象类:变量、常量;有构造方法;有抽象方法,也有非抽象方法 接口:常量;抽象方法
  • 关系区别 类与类:继承,单继承 类与接口:实现,可以单实现,也可以多实现 接口与接口:继承,单继承,多继承
  • 设计理念区别 抽象类:对类抽象,包括 属性和行为 接口:对行为抽象,主要是 行为