案例二:交通工具调度系统(核心:继承 + 多态 + final + 方法重写)

张开发
2026/4/18 20:19:02 15 分钟阅读

分享文章

案例二:交通工具调度系统(核心:继承 + 多态 + final + 方法重写)
题目需求定义父类Vehicle交通工具包含final方法getLicense()获取牌照规则禁止子类重写、普通方法run()子类Car、Bus继承Vehicle重写run()方法实现不同运行逻辑定义VehicleDispatcher调度类使用多态统一调度所有交通工具禁止创建Vehicle父类对象可结合抽象类优化final方法保护核心逻辑不被篡改。解题思路父类 Vehicle 设计核心约束用抽象类实现「禁止实例化」将Vehicle定义为abstract抽象类直接避免new Vehicle()这种错误用法同时可以定义抽象方法强制子类实现用 final 保护核心逻辑getLicense()方法用final修饰从语法层面彻底禁止子类重写保证牌照规则的唯一性定义统一行为模板将run()定义为抽象方法public abstract void run()强制所有子类必须重写保证代码规范2. 子类 Car / Bus 设计差异化实现继承Vehicle父类满足多态的「继承」前提重写run()方法在方法内编写各自的运行逻辑小汽车 / 公交车的不同行驶场景无需重写getLicense()直接继承父类的 final 方法保证逻辑统一3. 调度类 VehicleDispatcher 设计多态核心定义统一的调度方法dispatch(Vehicle vehicle)参数为父类Vehicle类型方法内统一调用vehicle.run()和vehicle.getLicense()run()会根据实际传入的子类对象Car/Bus执行对应的重写方法多态的核心体现getLicense()执行父类的 final 方法保证所有交通工具的牌照规则一致实现「开闭原则」新增交通工具如Train/Bike时只需新增子类无需修改调度类代码4. 测试类设计验证效果创建调度器对象分别创建Car、Bus子类对象用父类Vehicle引用接收子类对象Vehicle car new Car()调用调度方法验证输出结果和题目要求完全一致

更多文章