Java 中的接口和多态性

javaobject oriented programmingprogramming更新于 2024/8/5 4:17:00

让我们从讨论 Java 如何定义接口和多态性开始这篇文章,然后,我们将借助编程示例深入探讨这些概念。多态性,顾名思义,意味着多种形式,是对象根据上下文采取不同形式的能力。接口是一种使用关键字"interface"定义的类,只有方法体而没有任何实现。

通过 Java 中的接口实现多态性

在本节中,我们将指导如何使用接口实现多态性。但在此之前,正确理解这些概念很重要。

多态性

在多态性中,我们可以使用父类引用来引用子类。因此,该对象有多种形式:父类引用和子类引用。多态性最流行的两个例子是方法重载(也称为静态多态性),另一个是覆盖(运行时多态性)。

示例

在此示例中,我们将展示 Java 中的编译时多态性是如何工作的。我们将创建两个具有相同名称但具有不同签名的方法。子类的方法将重载父类的方法。方法重载被称为编译时多态性,因为编译器根据给定的参数在编译期间确定方法调用。

class Example1 { // 父类
    public void method() {
    	System.out.println("Tutorialspoint");
    }
}
// 创建子类
public class Example2 extends Example1 {
   public void method(int id) { // method overloading
      System.out.println("ID: " + id);
   }
   public static void main(String []args){
    // 类的对象创建
    Example1 exp1 = new Example1();
    Example2 exp2 = new Example2();
    // 方法调用
    exp1.method();
    exp2.method(125);
   }
}

输出

Tutorialspoint
ID: 125

接口

在 Java 中,接口有两个用途:纯抽象和多重继承。通常,接口由抽象方法和变量组成,这些方法和变量定义类可以实现的行为。除了抽象方法和变量之外,接口还可以包含默认方法、常量和静态方法。要创建接口,我们使用关键字"interface",要在类中访问其成员,我们需要在定义该类时使用"implements"关键字。

语法

interface nameOfInterface {
   method1();
   method2();
}

使用接口实现多态性的 Java 程序

我们先讨论一下方法。

方法

  • 第一步是创建一个仅带有方法声明的接口。

  • 然后,创建两个实现该接口的类并重写其方法以打印不同的消息。

  • 在 main() 方法中,定义接口的一个实例,并使用此实例创建两个类的实例。

  • 现在,使用这些实例调用方法并退出。

示例

interface Message { // 创建接口
    public void method(String name); // 方法声明
}
// 实现接口的类
class Example1 implements Message {
    String name;
    public void method(String name) {
    System.out.println("Hello " + name);
    }
}
// 另一个实现接口的类
class Example2 implements Message {
   String name;
   public void method(String name) { 
      System.out.println("Hello " + name);
   }
}
public class PolyExample {
   public static void main(String []args){
        // 创建接口实例
        Message msg;
        // 创建实例并将其分配给接口引用
        msg = new Example1();
        msg.method("Ram"); // 方法调用
        msg = new Example2();
        msg.method("Shyam"); // 方法调用
   }
}

输出

Hello Ram
Hello Shyam

结论

我们从定义多态性和接口开始本文。在下一节中,我们通过示例程序详细解释了它们。此外,我们还发现了方法重载和覆盖。最后,我们讨论了一个 Java 程序,演示了如何使用接口实现多态性。


相关文章