MST

星途 面试题库

面试题:Java接口多态性在复杂业务场景中的应用

假设你正在开发一个电商系统,其中有商品展示模块。商品有不同类型,如电子产品、服装等,每种商品都需要展示不同的信息。请设计一套基于Java接口多态性的方案来实现这个商品展示模块,包括接口定义、各类商品实现类,以及如何在展示逻辑中使用接口多态性来统一处理不同类型商品的展示,描述设计思路并给出关键代码片段。
19.4万 热度难度
编程语言Java

知识考点

AI 面试

面试题答案

一键面试

设计思路

  1. 定义商品展示接口:该接口定义商品展示所需的通用方法,不同类型商品实现该接口以提供各自的展示逻辑。
  2. 创建各类商品实现类:针对电子产品、服装等不同类型商品,分别创建实现类实现商品展示接口,重写接口方法以实现特定展示逻辑。
  3. 使用接口多态性:在展示逻辑中,使用接口类型来引用不同商品实现类的对象,通过调用接口方法实现统一处理不同类型商品的展示。

关键代码片段

  1. 商品展示接口定义
public interface ProductDisplay {
    String displayInfo();
}
  1. 电子产品实现类
public class ElectronicProduct implements ProductDisplay {
    private String brand;
    private String model;

    public ElectronicProduct(String brand, String model) {
        this.brand = brand;
        this.model = model;
    }

    @Override
    public String displayInfo() {
        return "Electronic Product: " + brand + " " + model;
    }
}
  1. 服装实现类
public class Clothing implements ProductDisplay {
    private String brand;
    private String size;

    public Clothing(String brand, String size) {
        this.brand = brand;
        this.size = size;
    }

    @Override
    public String displayInfo() {
        return "Clothing: " + brand + " Size: " + size;
    }
}
  1. 展示逻辑中使用接口多态性
public class DisplayLogic {
    public static void displayProduct(ProductDisplay product) {
        System.out.println(product.displayInfo());
    }

    public static void main(String[] args) {
        ProductDisplay electronic = new ElectronicProduct("Apple", "iPhone 14");
        ProductDisplay clothing = new Clothing("Nike", "M");

        displayProduct(electronic);
        displayProduct(clothing);
    }
}