【发布时间】:2017-06-08 01:13:04
【问题描述】:
我有一个名为“Shape”的父类并在其中编写了一个方法 我希望任何从它扩展的类都可以调用更大的方法以供其他用途。 像这样的简单逻辑:
public abstract Class Shape{
public int size;
public Shape() {}
public Class<? extends Shape> bigger() {
this.size += 1;
return this; // ← Here,How can I return it with unsure type?
}
}
但是我怎样才能在这里返回一个不确定的类型呢? 感谢您的任何想法!
====
如果我有一个类 Square extends Shape;
我想这样使用它:
Square S = new Square().bigger();
它会返回一个 Shape 类,而不是 Square 类。
但我不想使用:(Square) new Square.bigger();
我希望它可以使用这个方法自动识别什么类a
并返回正确的类型。
【问题讨论】:
-
你可以只返回形状。所有延伸形状的事物也是形状。这是一个返回的参考,因此不会丢失任何信息。我相信这是相关的:stackoverflow.com/questions/41525783/…
-
如果你打算编译你的代码,你必须完全正确地拼写像
class这样的关键字。您不能声明一个方法来返回一种类型,如Class,并返回另一种类型。查看官方 Java 教程了解如何完成这些操作。 -
谢谢,我想我还有很多东西要学XD
标签: java polymorphism