Java 接口与多态性

Java 接口与多态性

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

Java中的接口实现多态性

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

多态性

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

示例

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

class Example1 { // parent class
   public void method() { 
      System.out.println("Tutorialspoint");
   }
}
// creating a child class
public class Example2 extends Example1 {
   public void method(int id) { // method overloading
      System.out.println("ID: " + id);
   }
   public static void main(String []args){
      // object creation of the classes
      Example1 exp1 = new Example1();
      Example2 exp2 = new Example2();
      // method calling
      exp1.method(); 
      exp2.method(125);
   }
}

输出

Tutorialspoint
ID: 125

接口

在Java中,接口有两个目的,纯抽象和多继承。一般来说,一个接口由定义类可以实现的抽象方法和变量组成。除了抽象方法和变量之外,接口还可以包含默认方法、常量和静态方法。要创建一个接口,我们使用关键字”interface”,在类中访问它的成员时,需要使用”implements”关键字来定义类。

语法

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

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

让我们首先讨论方法。

方法

  • 第一步是创建一个只包含方法声明的接口。

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

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

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

示例

interface Message { // creating an interface 
   public void method(String name); // method declaration
}
// class implementing interface
class Example1 implements Message { 
   String name;
   public void method(String name) { 
      System.out.println("Hello " + name);
   }
}
// another class implementing interface
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){
      // creating an instance of interface
      Message msg;
      // creating instances and assigning them to interface reference
      msg = new Example1();
      msg.method("Ram"); // method call
      msg = new Example2();
      msg.method("Shyam");  // method call
   }
}

输出

Hello Ram
Hello Shyam

结论

我们通过定义多态性和接口的方式开始了这篇文章。在接下来的部分中,我们用示例程序详细解释了它们。同时,我们还介绍了方法重载和重写。最后,我们讨论了一个使用接口实现多态性的Java程序。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程