jjzjj

StringProcessor

全部标签

java - 为什么在 java 方法重写中允许具有协变返回类型,但不允许协变参数?

例如,我有一个Processor基类,其方法返回一个Object并将Object作为参数。我想扩展它并创建一个StringProcessor,它将返回String并将String作为参数。然而协变类型只允许返回值,而不是参数。这种限制的原因是什么?classProcessor{Objectprocess(Objectinput){//createacopyofinput,modifyitandreturnitreturncopy;}}classStringProcessorextendsProcessor{@OverrideStringprocess(Stringinput){//pe