【发布时间】:2019-02-09 19:31:30
【问题描述】:
我在 HPrinter 类上遇到编译器错误,说要包含未实现的方法或使我的类抽象,这显然是正确的,但我不明白为什么 java 允许创建该类的对象,我知道不是显式抽象的,而是隐式的。我知道我不调用未实现的方法,如果我这样做了,我会得到一个错误,但首先它不应该让你创建一个 HPrinter 类的对象,不是吗?这是一个例子:
public interface Printer {
void print();
void scan();
}
public class HPrinter implements Printer {
public void print() {
System.out.println("print()");
}
}
public class TestInterface {
public static void main(String[] args) {
Printer p=new HPrinter();
p.print();
}
}
【问题讨论】:
-
允许创建但给出错误...对不起,很难理解你
-
不,Java 不允许这样做。要么实现所有(必需的)方法,要么将您的类标记为抽象。您是否真的尝试编译此代码? (如果你真的可以运行代码,我很确定你有一个在添加扫描方法之前的编译版本。)
-
如果您遇到编译器错误,¿Java 是如何允许您这样做的?
-
您应该实现 scan() 方法,这是任何实现类的规则。您可以制作 HPrinter 类的对象,这不是违规。
-
如果您使用的是 Eclipse,请查看 stackoverflow.com/questions/10546718/… 和/或 stackoverflow.com/questions/16394152/…
标签: java