匿名内部类不可能静态的,直接都是建立一个对象,都放在堆内存中。匿名都没有定义类型,更不用说加上修饰符了,每一次被调用都是一个新的对象,被静态修饰的成员能被共享,就这点也和匿名冲突了。作者: 帅气的冬瓜 时间: 2013-11-26 16:08
可以的。你可以下面的代码。看是否能帮住你吧!
abstract class AbsDemo{
abstract void show();
}
class Outer{
int x=3;
public void function(){
Abstract d=new Abstract(){
int num=9;
void show(){
system.out.println("num=="+num);
}
void abc(){
System.out.println("haha");
}
};
d.show();
}
}
interface Inter
{
void method();
}
class Test
{
static Inter function()
{
renturn new Inter()
{
public void methos()
{
System.out.println("method run");
}
};
}
}
class InterClassTest
{
public static void main(String[] args)
{
Test.function().method();
//Outer.function().show();
// Out.function().abc();
}
} 作者: 王贺 时间: 2013-11-26 16:13
匿名内部类也就是没有名字的内部类,正因为没有名字,所以匿名内部类只能使用一次,它通常用来简化代码编写,但使用匿名内部类还有个前提条件:必须继承一个父类或实现一个接口。
下面一个简单Demo:
abstract class Person {
public abstract void eat();
}
public class Demo {
public static void main(String[] args) {
Person p = new Person() {
public void eat() {
System.out.println("eat something");
}
};
p.eat();
}
}
作者: 王雷1 时间: 2013-11-26 16:32
abstract class AbsDemo
{
abstract void show();
}
class Outer
{
int x=3;
public void function()
{
Abstract d=new Abstract()
{
int num=9;
void show()
{
system.out.println("num=="+num);
}
void abc()
{
System.out.println("haha");
}
};
d.show();
}
}
interface Inter从这开始下面我看的差不多了,你很有才,这样的静态内部类你都能想到。但是这个上面的代码是什么意思,特别是你new Abstract是什么意思求解
{
void method();
}
class Test
{
static Inter function()
{
return new Inter()
{
public void methos()
{
System.out.println("method run");
}
@Override
public void method() {
// TODO Auto-generated method stub