当前位置:首页 > Java

java中如何实现多态

2026-03-04 01:49:24Java

多态的实现方式

在Java中,多态主要通过继承和接口实现,允许不同类的对象对同一消息做出响应。以下是实现多态的核心方法:

方法重写(Override)

子类可以重写父类的方法,调用时根据实际对象类型决定执行哪个方法。

class Animal {
    void sound() {
        System.out.println("Animal makes sound");
    }
}

class Dog extends Animal {
    @Override
    void sound() {
        System.out.println("Dog barks");
    }
}

public class Main {
    public static void main(String[] args) {
        Animal myDog = new Dog(); // 父类引用指向子类对象
        myDog.sound(); // 输出: Dog barks
    }
}

接口实现

通过接口定义方法,由不同类实现同一接口的方法。

interface Shape {
    void draw();
}

class Circle implements Shape {
    @Override
    public void draw() {
        System.out.println("Drawing Circle");
    }
}

class Square implements Shape {
    @Override
    public void draw() {
        System.out.println("Drawing Square");
    }
}

public class Main {
    public static void main(String[] args) {
        Shape shape1 = new Circle();
        Shape shape2 = new Square();
        shape1.draw(); // 输出: Drawing Circle
        shape2.draw(); // 输出: Drawing Square
    }
}

抽象类与抽象方法

抽象类可以定义抽象方法,强制子类实现具体逻辑。

java中如何实现多态

abstract class Vehicle {
    abstract void run();
}

class Car extends Vehicle {
    @Override
    void run() {
        System.out.println("Car drives on road");
    }
}

class Boat extends Vehicle {
    @Override
    void run() {
        System.out.println("Boat sails on water");
    }
}

public class Main {
    public static void main(String[] args) {
        Vehicle vehicle1 = new Car();
        Vehicle vehicle2 = new Boat();
        vehicle1.run(); // 输出: Car drives on road
        vehicle2.run(); // 输出: Boat sails on water
    }
}

多态的应用场景

  • 动态绑定:运行时确定调用的方法(如上述示例)。
  • 集合中的多态:使用父类类型存储不同子类对象。
    List<Animal> animals = new ArrayList<>();
    animals.add(new Dog());
    animals.add(new Cat());
    for (Animal animal : animals) {
      animal.sound(); // 根据实际对象调用方法
    }

注意事项

  • 多态仅适用于方法,不适用于成员变量(变量调用看引用类型)。
  • 若需调用子类特有方法,需进行向下转型(如 ((Dog)myDog).fetch())。

分享给朋友:

相关文章

vue如何实现分离

vue如何实现分离

Vue 实现组件分离的方法 Vue 可以通过多种方式实现组件分离,提升代码的可维护性和复用性。以下是几种常见的方法: 单文件组件 (SFC) Vue 的单文件组件(.vue 文件)将模板、脚本和样式…

vue自动登录如何实现

vue自动登录如何实现

实现自动登录的基本思路 自动登录通常通过结合本地存储(如localStorage或cookie)和token验证机制实现。用户首次登录成功后,服务器返回的认证token会被保存在客户端,下次打开应用时…

java如何实现跨平台

java如何实现跨平台

Java实现跨平台的原理 Java通过“一次编写,到处运行”的设计理念实现跨平台能力。其核心机制包括: Java虚拟机(JVM) Java源代码编译为字节码(.class文件),由JVM解释执行。不…

vue如何实现截图

vue如何实现截图

Vue 实现截图的方法 在 Vue 中实现截图功能可以通过多种方式完成,以下是几种常见的实现方法: 使用 html2canvas 库 html2canvas 是一个流行的 JavaScript 库,…

java是如何实现跨平台的

java是如何实现跨平台的

Java 跨平台的实现原理 Java 实现跨平台的核心机制基于 “一次编写,到处运行” 的理念,主要通过以下技术实现: 字节码与 JVM Java 源代码编译后生成字节码(.class 文件),而非…

vue如何实现404

vue如何实现404

实现 Vue 404 页面的方法 在 Vue 中实现 404 页面通常需要结合路由配置和动态路由匹配。以下是几种常见方法: 使用通配符路由匹配 在 Vue Router 配置中,可以通过 * 通配符…