黑马程序员技术交流社区
标题:
关于内部是接口类型的实例化问题。
[打印本页]
作者:
weimoliang
时间:
2014-5-26 14:00
标题:
关于内部是接口类型的实例化问题。
public class Outer {
// 普通内部类
class Inner {
public void sayHello() {
System.out.println("this is a inner!");
}
}
// 内部类是接口类型
interface InterfaceInner {
public abstract void sayHello();
}
public static void main(String[] args) {
Outer out = new Outer();
// 内部类想要时候必须通过 它的外部类。格式为:
// 外部类.内部类 对象 = new 外部类().new 内部类()
// 或者为:
// 外部类.内部类 对象 = 外部类对象.new 内部类()
Outer.Inner inner = out.new Inner();
inner.sayHello();
// 问题在这里,为什么接口类型的内部类不能通过上面的格式实例化?
// 如果是这个样子就会报错
Outer.InterfaceInner iiOne = out.new InterfaceInner() { // 这里报错
@Override
public void sayHello() {
// TODO Auto-generated method stub
}
};
Outer.InterfaceInner iiTwo = new InterfaceInner() { // 这个样子就不会报错
@Override
public void sayHello() {
System.out.println("InterfaceInner");
}
};
iiTwo.sayHello();
}
}
复制代码
问题注释在代码内,各位同学copy,运行。看看是我哪里格式问题,还是理解有问题。
作者:
成小龙
时间:
2014-5-26 14:28
内部类 干出接口来了?做什么用的
作者:
成小龙
时间:
2014-5-26 14:29
接口 不能直接实例化 实现的子类可以
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2