一、概述
1.接口的概念
官方解释:Java接口是一系列方法的声明,是一些方法特征的集合。一个接口只有方法的特征没有方法的实现,因此这些方法可以在不同的地方中被不同的类实现,而这些实现可以具有不同的行为(功能)。
接口可以被理解成一种特殊的类,里面全部是由全局常量和公共的抽象方法所组成。接口是解决Java无法使用多继承的一种手段,但是接口在实际中更多的作用是制定标准的。或者我们可以直接把接口理解成100%的抽象类,即接口中的方法必须全部是抽象方法。
2.接口的定义
①定义接口要用到关键字interface,格式如下 :
interface 接口名 {
}
public interface Animal {
void run();
void sleep();
}
②类和接口之间不再是继承关系,而是实现关系,用implements关键字表示。如下 :
class 类名 implements 接口名 {
}
public class AnimalBase implements Animal{
public void run(){
System.out.println("跑");
}
public void sleep(){
System.out.println("睡觉");
}
}
需要注意的是:与类的定义类似,接口的访问权限修饰符只能是public或者默认。
二、接口的特点
1.接口成员变量的特点:
接口中没有成员变量,只有共有静态常量。
即默认情况下属性前都会有 public static final 这三个关键字修饰。如下 :
public static final 数据类型 常量名 = 常量值;
2、接口成员方法的特点:
方法的默认属性为public abstract
3.接口构造方法的特点:
接口存在的目的是为了规范类,因此接口也不可以被实例化。接口中不允许存在代码块,也没有需要初始化的成员,因此接口没有构造方法(构造器)。在接口中定义构造器IDEA会直接报错。
4.接口创建对象的特点:
接口不能被实例化 :
只能通过多态的方式实例化“子类”对象(这里的“子类”指的是接口的实现类)
接口的子类(实现类) :
可以是抽象类,也可以是普通类。
对于抽象实现类,可以不用实现接口的所有方法,因为抽象类本身容许存在抽象方法,语法上是通过的。
public abstract class AnimalBase implements Animal{
public void run(){
System.out.println("跑");
}
}
上述抽象类只实现了接口中的部分方法,但是IDEA并没有报错。
对于普通实现类,要求实现接口的所有抽象方法。

普通类若未实现接口中的全部方法,IDEA则会报错。
解决方法为将类声明为abstract抽象类,或实现Animal接口中剩下的方法。
5.接口继承关系的特点;
类和接口之间的关系 :
类与接口是实现关系,支持“多实现”,即一个类可实现多个接口。
接口与接口之间的关系 :
接口与接口是继承关系,java 支持接口的多继承,即一个接口可以同时继承多个接口,格式如下 :
接口 extends 接口1,接口2,接口3...
继承和实现的区别 :
继承体现的是“is a”的关系,父类中定义共性内容。
实现体现的是“like a”的关系,父接口中定义扩展内容。

3541

被折叠的 条评论
为什么被折叠?



