黑马程序员技术交流社区
标题:
匿名内部类问题
[打印本页]
作者:
追梦之旅
时间:
2014-4-11 23:38
标题:
匿名内部类问题
interface Contents{ void go(){};}public class Test1 { public Contents con() { return new Contents() { public void go() { System.out.println("I got it"); } }; } public static void main(String [] args) { Test1 t = new Test1(); Contents c = t.con(); c.go(); }我想问下此处匿名内部类中的go()方法为什么一定要写明是public的(不然不能运行),难道匿名内部类内部成员默认是private?
作者:
Tking
时间:
2014-4-12 02:25
interface Contents
{
void go(){};
}
public class Test1
{
public Contents con() {
return new Contents()
{
public void go()
{
System.out.println("I got it");
} };
}
public static void main(String [] args)
{
Test1 t = new Test1();
Contents c = t.con();
c.go();
}
复制代码
因为你创建的是接口的子类对象,接口里的方法都是 public 抽象的,所以要重写,一定要大于或者等于该接口的权限
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2