1、匿名内部类即没有名称的内部类,每个匿名内部类只能使用一次,使用匿名内部类有一个条件,那就是必须继承一个父类或者接口。匿名内部类不能有构造器。
实例一(基本实现):
abstract class Person(){
public abstract void eat();
}
class demo(){
public static void main(String []args){
Person p=new Person(){
public void eat(){
system.out.println(“i like eat”);
}
};
p.eat();
}
}
实例二(继承接口的情况):
interface Person{
public void eat();
}
class demo(){
public static void main(String []args){
Person p=new Person(){
public void eat(){
system.out.println(“i like eat”);
}
};
p.eat();
}
}
实例三(在线程中的使用):
class demo(){
public static void main(String []args){
Thread t=new Thread(){
public void run(){
for(int i=0;i<5;i++){
System.out.println(i+” “);
}
}
};
t.start();
}
}
2、静态内部类
class Out{
private static int age=12;
static class In{
public void print(){
system.out.println(age);
}
}
}
public class demo(){
public static void main(String []args){
Out.In in=new Out.In();
in.print();
}
}
程序输出:12
可以看到,如果用static 将内部类静态化,那么内部类就只能访问外部类的静态成员变量,具有局限性