【发布时间】:2013-04-23 16:12:34
【问题描述】:
假设我有一个接口A,定义如下:
public interface A {
public void a();
}
它包括称为void a();的方法
我有一个类实现了这个接口并且只有一个方法:
public class AImpl implements A {
@Override
public void a() {
System.out.println("Do something");
}
}
Q:如果在主类中调用接口方法,会不会调用属于实现该接口的类的实现?
例如:
public static void main(String[] args){
A aa;
aa.a();
}
这会打印“做某事”吗?
【问题讨论】:
-
左边永远只是一个对象可以去的槽。正如约翰所说,您需要通过使用
new创建一个对象来实际“放置”一个对象。 -
请尝试发布SSCCE 来描述您的问题。并包括您收到的错误消息。接口不会编译,main 方法会抛出一个
NullPointerException。除此之外,您的问题是有效的,应该由我在下面的回答来回答。 -
@JayZhang:不要忘记接受(勾选)最佳答案。所以大家都知道问题解决了。
-
这对我有用,谢谢。但这是使用
service接口类和serviceimpl类的标准方式吗?