21xrx.com
2024-11-22 09:49:16 Friday
登录
文章检索 我的文章 写文章
Java接口:用法、实现、案例详解
2023-06-18 07:42:37 深夜i     --     --
Java接口 实现 抽象方法**

Java中的接口是一种常见的类间交互方式,比抽象类更为灵活,也更易于复用。本文将重点讲解Java接口的定义、实现、以及应用案例,帮助读者深入理解Java中接口的使用方法。

1. 接口的定义和用法

Java接口是一组抽象方法的集合,可以被实现(implement)的类进行实现,并定义了一系列抽象方法,但没有具体实现。这些抽象方法由实现接口的类进行实现,最终在具体实现类中被调用。

接口的定义格式如下:


public interface InterfaceName {

  // 抽象方法的定义

  public abstract void methodName();

}

关键代码解释:

- 接口的所有方法都是抽象方法,没有具体实现。

- 接口的访问限定符一般为public,默认情况下,接口中定义的方法都是public的。

- 方法定义后必须以“;”结束。

2. 接口的实现

接口实现的语法格式如下:


class ClassName implements InterfaceName

  // 必须实现接口中所有的抽象方法

类实现接口的时候,需要实现接口中所有的抽象方法。如果没有实现所有抽象方法,那么该类必须声明为抽象类。

下面我们来看一个简单的示例,演示如何实现接口:


public interface Shape {

  public void draw();

}

public class Circle implements Shape {

  public void draw() {

    System.out.println("画圆形");

  }

}

在上述示例中,我们定义了Shape接口,其中只有一个draw方法,用来画图形。接着,我们定义类Circle,实现了Shape接口,重写了draw方法,并在该方法中输出“画圆形”字符串。

3. Java接口的应用案例

接口最常见的应用,是定义一个规范,强制实现这个规范的类具有某一种功能。下面我们通过一个实际案例来看看接口的应用。

某公司需要一个录取学生的系统,该系统需要统计学生的总成绩、平均成绩以及排名等信息,而不同专业的成绩计算方式不同,需要用到多态技术。这种情况下,我们可以设计一个抽象的计算机接口,让不同专业的计算机来实现这个接口,完成自己的成绩计算方法。

以下是示例代码:


import java.util.Scanner;

public interface Computer {

  public float calculate(float[] scores, int n);

}

class MathComputer implements Computer {

  public float calculate(float[] scores, int n) {

    float sum = 0;

    for (int i = 0; i < n; i++) {

      sum += scores[i];

    }

    return sum;

  }

}

class EnglishComputer implements Computer {

  public float calculate(float[] scores, int n) {

    float sum = 0;

    for (int i = 0; i < n; i++) {

      sum += scores[i];

    }

    return sum / 2;

  }

}

public class StudentScore {

  public static void main(String[] args) {

    Scanner sc = new Scanner(System.in);

    System.out.println("请输入成绩个数:");

    int n = sc.nextInt();

    float[] scores = new float[n];

    for (int i = 0; i < n; i++) {

      System.out.println("请输入第" + (i + 1) + "门课的成绩:");

      scores[i] = sc.nextFloat();

    }

    Computer mathComputer = new MathComputer();

    Computer englishComputer = new EnglishComputer();

    float mathScore = mathComputer.calculate(scores, n);

    float englishScore = englishComputer.calculate(scores, n);

    System.out.println("总成绩:" + (mathScore + englishScore));

    System.out.println("平均成绩:" + (mathScore + englishScore) / 2);

  }

}

在上述示例中,我们定义了一个Computer接口,里面只有一个计算平均分数的calculate()方法。接着,我们设计了MathComputer和EnglishComputer两个具体实现类,各自实现了自己的成绩计算方法。在学生成绩录入时,程序根据不同的课程创建不同的计算机对象,计算平均分数并输出。

**

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复