您好,欢迎来到哗拓教育。
搜索
您的当前位置:首页正文

『Java』接口的使用方法

来源:哗拓教育
『Java』接⼝的使⽤⽅法

以下三个⽂件存在于同⼀个包下:1. 定义接⼝Dome_Interface.java:

package cn.xxmmqg.Interface;

// 接⼝不能直接使⽤,必须有⼀个“实现类”来实现该接⼝

// 接⼝的实现类必须覆盖接⼝中的所有抽象⽅法,如果没有全部覆盖重写,则实现类必须是抽象⽅法public interface Dome_Interface {

// ==============抽象⽅法================= // 任何版本的java都可以定义抽象⽅法

// 抽象⽅法的修饰符必须是 public abstract,且可以选择性省略 public abstract void methodAbs1(); public void methodAbs2(); abstract void methodAbs3(); void methodAbs4(); // 以上都是抽象⽅法

// ==============默认⽅法=================

// 默认⽅法通过default修饰,⽽public 可以省略,但是【不能是其他的】 // 默认⽅法可以通过【实现类】使⽤,⽽不需要被实现类重写 public default void methodDef(){

System.out.println(\"默认⽅法运⾏\"); }

// 接⼝中可以定义默认⽅法,⽤于解决接⼝升级问题

// 将新添加的接⼝功能定义成默认⽅法,那么已投⼊使⽤的实现类不需要改变也可使⽤该功能,实现类中也可以对其进⾏覆盖重写 // ==============静态⽅法================= public static void methodSta(){

System.out.println(\"接⼝的静态⽅法\"); }

// ==============私有⽅法=================

// 定义私有⽅法,⽤于解决多个【默认⽅法】代码重复的问题

// 如果私有⽅法中加上修饰符static,就能解决多个【静态⽅法】代码重复问题 private void methodPri(){

System.out.println(\"重复代码运⾏\"); }

public default void methodDef1(){

System.out.print(\"methodDef1运⾏ \"); this.methodPri(); }

public default void methodDef2(){

System.out.print(\"methodDef2运⾏ \"); this.methodPri(); }

// ==============成员变量=================

// 接⼝中定义成员变量,但是必须使⽤ public static final三个关键字进⾏修饰,且可以选择性省略 // 效果上看,就是接⼝的常量,以下定义⽅法中都是【常量】 // 接⼝中的常量必须进⾏赋值

public static final int NUM_1 = 10; // 常量⼀般使⽤全⼤写字母加下划线 int NUM_2 = 11;

public int NUM_3 = 12; static int NUM_4 = 13; final int NUM_5 = 14;}

2. 定义接⼝的实现类Dome_Implement.java:

package cn.xxmmqg.Interface;

public class Dome_Implement implements Dome_Interface{ // 覆盖重写抽象⽅法 @Override

public void methodAbs1() { System.out.println(\"Abs1\"); }

@Override

public void methodAbs2() { System.out.println(\"Abs2\");

}

@Override

public void methodAbs3() { System.out.println(\"Abs3\"); }

@Override

public void methodAbs4() { System.out.println(\"Abs4\"); }}

3. 主函数Dome_Main.java:

package cn.xxmmqg.Interface;public class Dome_Main {

public static void main(String[] args) {

Dome_Implement impl = new Dome_Implement(); System.out.println(\"--------------------\"); impl.methodAbs1(); impl.methodAbs2(); impl.methodAbs3(); impl.methodAbs4();

System.out.println(\"--------------------\");

// 调⽤默认⽅法,如果实现类中没有定义,则向上找接⼝的 impl.methodDef(); impl.methodDef1(); impl.methodDef2();

System.out.println(\"--------------------\"); // 调⽤静态⽅法

// impl.methodSta(); // 不能通过接⼝实现类的对象来调⽤接⼝的静态⽅法,因为⼀个类可以实现多个接⼝,这些接⼝的静态⽅法有可能重名 Dome_Interface.methodSta(); // 正确调⽤接⼝静态⽅法的⽅法 System.out.println(\"--------------------\"); // 访问接⼝中的常量

System.out.println(Dome_Interface.NUM_1); System.out.println(Dome_Interface.NUM_3); }}

主函数运⾏结果:

--------------------Abs1Abs2Abs3Abs4

--------------------默认⽅法运⾏

methodDef1运⾏ 重复代码运⾏methodDef2运⾏ 重复代码运⾏--------------------接⼝的静态⽅法--------------------1012

因篇幅问题不能全部显示,请点此查看更多更全内容

Top