接口,与抽象类类似但是区别也很大,他们都是标签,用来提醒父类一定要实现的类里创建抽象方法。而接口类可以implements 多个接口,抽象类则只能父类只能继承一个抽象类,与抽象不同的是它不是继承组合关系,所以无法使用super关键字来调用接口里的方法,
接口的要求:
1.接口类必须使用interface关键字创建
2.接口类的父类必须使用implements来附属接口类
3.一个父类可以implements 多个接口(而抽象类的父类只能继承一个抽象类)
4.接口的所有量都是常量,接口类里会将量自动添加static final 关键字。
5.接口里的抽象方法在使用的时候必须需要在父类中重写
6.在Java1.8的新版本中,接口可以用default关键字在接口类中实现方法。而实现的方法不需要在父类中重写
7.接口中常量的调用可以直接用接口类调用也可以实例父类后调用,但是重写的抽象方法或者实现方法不行,必须new父类后实现。
package rom;import java.awt.Container;import javax.swing.JFrame;import javax.swing.WindowConstants;public class Xamle_1 implements demo { public void demo1() { System.out.println("重写接口里的demo1"); } public void demo1_2() { System.out.println("重写接口里的demo1_2"); } public static void main(String[] args) { Xamle_1 xamle_1 = new Xamle_1(); xamle_1.demo1(); //调用重写后的demo1方法 xamle_1.demo2(); //用new的实例类,在接口中直接调用关键字default修饰的已经实现的方法,此方法不需要重写 System.out.println("调用接口中的常量:"+demo.a);//只有常量可以不用new 一个实例类,直接用接口类调用 System.out.println("调用接口中的常量:"+xamle_1.b); //用 new的实例类调用常量b } }interface demo { public void demo1() ; //在接口中可以不写abstract关键字,因为接口中的抽象方法已经默认写了abstract abstract public void demo1_2(); //与上面对比 default void demo2() { System.out.println("default 关键字在接口中实现方法"); } public static final int a = 100; public static int b = 100; //虽然没有写但是接口的常量会默认写上final,所以接口中的常量是无法修改的 }
posted on 2017-06-30 10:49 阅读( ...) 评论( ...) 收藏