21xrx.com
2024-12-22 17:38:12 Sunday
登录
文章检索 我的文章 写文章
Java多态性的三种形式示例
2023-07-01 12:24:09 深夜i     --     --
方法重载 方法重写 向上转型

Java是一种面向对象的编程语言,而多态性是面向对象编程中非常重要的概念之一。多态性是指不同对象针对同一消息做出不同的响应,它可以让程序更加灵活、拓展性更高。在Java中,多态性可以分为三种形式,下面将通过示例来介绍。

1. 方法重载

方法重载是指在同一个类中,有多个方法名相同但参数个数或类型不同的方法。编译器会根据参数的类型和数量来判断调用哪个方法,这就是静态多态性。

例如:


public class OverloadingExample {

  public void print(int n) {

    System.out.println("Printing integer: " + n);

  }

  public void print(double d) {

    System.out.println("Printing double: " + d);

  }

  public void print(String s) {

    System.out.println("Printing string: " + s);

  }

}

在上面的代码中,我们定义了三个名字相同但参数不同的方法print,分别接受一个int类型、一个double类型和一个String类型的参数。当我们调用这个类的print方法时,编译器会根据参数的类型来判断哪个方法被调用。

2. 方法重写

方法重写是指子类重写了父类的同名方法,实现了对该方法的重新定义。在运行时,对象的实际类型决定了被调用的方法,这就是动态多态性。

例如:


public class Animal {

  public void move() {

    System.out.println("Animal is moving");

  }

}

public class Cat extends Animal {

  public void move() {

    System.out.println("Cat is moving");

  }

}

在上面的代码中,我们定义了两个类Animal和Cat,Cat是Animal的子类,它重写了Animal的move方法。当我们调用Cat的move方法时,由于Cat是Animal的子类,它会运行Cat的move方法,而不是Animal的move方法。

3. 接口实现

接口是一种抽象类型,它只包含方法声明但没有实现。在Java中,一个类可以实现多个接口,实现了接口的类需要实现接口中声明的所有方法,这就是多态性。

例如:


public interface Drawable {

  void draw();

}

public class Circle implements Drawable {

  public void draw() {

    System.out.println("Drawing circle");

  }

}

public class Rectangle implements Drawable {

  public void draw() {

    System.out.println("Drawing rectangle");

  }

}

在上面的代码中,我们定义了一个名为Drawable的接口,它只包含一个方法draw。我们还定义了两个类Circle和Rectangle,它们都实现了Drawable接口并实现了draw方法。当我们调用Circle和Rectangle的draw方法时,由于它们都实现了Drawable接口,它们的draw方法会被调用。

总结

Java中的多态性可以通过方法重载、方法重写和接口实现来实现。方法重载和方法重写是静态多态性,它们是在编译时确定的。接口实现是动态多态性,它在运行时确定。多态性让程序更加灵活、易于拓展,有助于提高程序的可维护性和可复用性。

  
  

评论区

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