我正在制作一个抽象Font类,我想强制子类声明一个带有单个int参数(字体大小)的构造函数.我尝试这样做如下.
public abstract class Font {
...
public abstract Font(int size);
...
}
Run Code Online (Sandbox Code Playgroud)
但我的编译器声明:
Error:(20, 19) java: <path omitted>/Font.java:20: modifier abstract not allowed here
Run Code Online (Sandbox Code Playgroud)
这不是世界末日 - 这不是绝对必要的,我只是希望Java编译器强迫我记住实现该构造函数.我只是想知道为什么不允许这样做?
您创建的任何构造函数都必须由实现此抽象类的任何类调用,因此实际上并不需要"提醒"人们实现该构造函数.
扩展类的人可能想要创建自己的构造函数有很多原因.例如:
public MySpecialSize16Font()
{
super(16);
}
Run Code Online (Sandbox Code Playgroud)
要么
public ColoredFont(int size, Color color)
{
super(size);
this.color = color;
}
Run Code Online (Sandbox Code Playgroud)
这不是指定这些类可以提供和不能提供的构造函数的地方.
| 归档时间: |
|
| 查看次数: |
1963 次 |
| 最近记录: |