You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java修改Picture接口方法后PolyLine实例信息无法输出到控制台问题咨询

问题原因

  • 你修改接口后删除了PolyLine类自定义的toString()重写逻辑,替换为实现Draw()方法,但main方法中仍使用System.out.println("Triangle = \n" + Triangle.toString());输出对象,程序不会自动调用Draw()方法。
  • 此时PolyLine类没有自身的toString()实现,会继承父类Line的toString()方法。你实例化PolyLine时调用的父类构造Line(Line[] l1)是空实现,没有给Line类的start、end成员变量赋值,二者默认值为null。
  • Line类的toString()方法会调用Length()计算边长,Length()方法直接访问end.x、start.x属性,会触发NullPointerException,程序运行中断,因此不会输出你预期的PolyLine相关信息。

修复方案

两种方案二选一即可:

  1. 修改main方法中的输出逻辑,把System.out.println("Triangle = \n" + Triangle.toString());替换为Triangle.Draw();,直接调用你实现的接口方法输出信息,也符合你要使用接口的任务要求。
  2. 在PolyLine类中补充重写toString()方法,把Draw()中的输出逻辑调整为字符串返回即可,兼容原有输出逻辑的同时也保留了接口的实现。

内容的提问来源于stack exchange,提问作者user17059077

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 16:36:02