这段代码:comboBoxMonth.Items.AddRange(UsageRptConstsAndUtils.months.ToArray()); public static List<String> months = new List<String> { ...
虚函数的返回类型应该与基类中的类型相同,或者是协变的。但是我们为什么要有这个限制呢?
自从Java 5开始,我们被允许拥有协变返回类型。为什么Java API没有利用这一点呢? 以Graphics2D.create()为例。为什么它没有被重写以返回一个Graphics2D对象?在我看来,它在所有情况下都是向后兼容的。
我有以下结构: public interface BarReturn {} public interface FooReturn {} public interface FooBarReturn extends FooReturn, BarReturn {} public interfac...
例如,我有一个处理器基类,其中有一个返回对象并以对象为参数的方法。我想扩展它并创建一个 StringProcessor,它将返回字符串并以字符串为参数。然而,协变类型仅允许在返回值上,而不是参数上。这样的限制是什么原因? class Processor { Object proces...
为什么下面的代码会输出“1”? class A { int x = 1; } class B extends A { int x = 2; } class Base { A getObject() { System.out.println("Ba...
我有一个子类需要返回其父类返回类型的子类。我相信这被称为协变返回类型。我想知道从父类转换为子类的最简单方法。 class A { } class B extends A { function bar() { } } class Car { function foo() { ...
我正在尝试使用CRTP实现一个可克隆的类。然而,我需要有一个抽象类,该类具有由子类重写的纯虚拟克隆方法。为了实现这一点,我需要让克隆函数返回协变返回类型。我编写了下面的代码,但编译器报错: main.cpp:12:5: error: return type of virtual functi...