接口的概念

一:概念

接口是功能的集合。同样可以看做一种数据类型,是比抽象类更为抽象的“类”。

接口描述应该具备的方法,并没有具体的实现。具体实现由接口的实现类(相当于接口的子类来完成)。

什么是接口?

一个普通方法都没有,全是抽象方法!这就是接口

定义接口所在的仍为.java文件,虽然声明时使用的为interface关键字的编译后仍然会产生.class文件。

接口的关键字:

interface 

接口定义格式:

public interface 接口名 {

  抽象方法1;

  抽象方法2;

  抽象方法3;

}

注意:

 在接口中默认方法都是抽象的(abstract),不管是否使用public abstract,都一样

接口不可以直接创建对象

子类必须重写接口中所有的抽象方法,子类才可以实例化,否则子类还是一个抽象类

类实现接口:

类与接口的关系为实现关系,即类实现接口。实现的动作类似继承,只是关键字不同,实现使用implements

类实现接口格式:

public class 类 implements 接口 {

    重写接口中方法

}

public interface Demo { ///定义一个名称为Demo的接口。
	public abstract void show1();
	public abstract void show2();
}

 接口的好处弥补了java中单继承的缺陷,接口可以多实现:

public interface Fu1
{
	void show1();
}
public  interface Fu2
{
	void show2();
}
public class Zi implements Fu1,Fu2// 多实现。同时实现多个接口。
{
	public void show1(){}
	public void show2(){}
}

有继承关系的就先继承然后在连接类接口

接口与抽象的相同点:

都不能直接实例化对象

都可以包含抽象方法,但是子类必须重写这些抽象方法

区别:

抽象类为部分方法提供实现,避免子类重复实现这些方法,提高代码重用性;接口只能包含抽象方法;

一个类只能继承一个直接父类(可能是抽象类),却可以实现多个接口;(接口弥补了Java的单继承)

抽象类里面不一定只有抽象方法,也可以有普通方法,但是接口中一定只有抽象方法,没有普通方法!

原文地址:https://www.cnblogs.com/awdsjk/p/10913845.html