口可以理解为一种特殊的类,里面全部是由全局常量和公共的抽象方法所组成。接口是
解决Java无法使用多继承的一种手段,但是接口在实际中更多的作用是制定标准的。或者
我们可以直接把接口理解为100%的抽象类,既接口中的方法必须全部是抽象方法
接口的特点
就像一个类一样,一个接口也能够拥有方法和属性,但是在接口中声明的方法默认是抽象的。(即只有方法标识符,而没有方法体)。
接口指明了一个类必须要做什么和不能做什么,相当于类的蓝图。
一个接口就是描述一种能力,比如“运动员”也可以作为一个接口,并且任何实现“运动员”接口的类都必须有能力实现奔跑这个动作(或者implement move()方法),所以接口的作用就是告诉类,你要实现我这种接口代表的功能,你就必须实现某些方法,我才能承认你确实拥有该接口代表的某种能力。
如果一个类实现了一个接口中要求的所有的方法,然而没有提供方法体而仅仅只有方法标识,那么这个类一定是一个抽象类。(必须记住:抽象方法只能存在于抽象类或者接口中,但抽象类中却能存在非抽象方法,即有方法体的方法。接口是百分之百的抽象类)
一个JAVA库中接口的例子是:Comparator 接口,这个接口代表了“能够进行比较”这种能力,任何类只要实现了这个Comparator接口的话,这个类也具备了“比较”这种能力,那么就可以用来进行排序操作了。
以下是它的特点
1 接口不可以被实例化,这和抽象类一样,但抽象类中可以有构造器,而接口中不可以有构造器。
2接口可以实现“多继承“,一个实现类可以有多个接口。
抽象类中的抽象方法,可以不实现完,但要把”它“也定义成抽象方法,而接口必需全部实现。
3 接口用interface定义。
4 如果一个类实现了一个接口,者必须实现接口中全部的抽象方法。
5 接口中可以不写public abstract 和public static final,这两者在接口中会默认带上,接口中的常量因为带上
了final也因为是在接口中,所以接口中的常量不能被修改。
6.一个类实现接口用implements。
接下来是一个简单的防盗门代码
这是门的接口
public interface m { public abstract void km(); public void gm(); }
这是锁的接口
public interface suo { public abstract void ks(); public abstract void gs(); } 接下来是防盗门
public class fdm implements m,suo { @Override public void km() { System.out.println("开门"); } @Override public void gm() { System.out.println("关门"); } @Override public void ks() { System.out.println("开锁"); } @Override public void gs() { System.out.println("关锁"); } }
最后再写一个测试类
public class test { public static void main(String[] args) { fdm a=new fdm(); a.km(); a.ks(); a.gm(); a.gs(); } }
这样就完成了