Java 中的接口和多态性
让我们从讨论 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 程序,演示了如何使用接口实现多态性。