//定义动物接口
interface Animal{
void shout(); //定义shout()方法
}
public class Examples{
public static void main (String[] args){
//定义匿名内部类作为参数传递给animalShout()方法
animalShout(new Animal(){
//定义实现shout()方法
public void shout(){
System.out.println("喵喵喵");
}
});
}
//定义静态方法animalshout()
public static void animalShout(Animal an){
an.shout(); //调用传入对象an的shout()方法
}
}
在调用animalShout()方法时,在方法参数位置写上new Animal(){},者相当于创建一个实例对象,并将对象作为参数传给animalshout()方法,在new Animal()后面写一对大括号,表示创建的对象为Animal的子类实例,该子类为匿名的。
下面来拆分上面的匿名内部类
//定义动物接口
interface Animal{
void shout(); //定义shout()方法
}
public class Examples{
public static void main (String[] args){
//定义匿名内部类cat实现Animal接口
class Cat implements Animal{
实现shout() 方法
public void shout(){
System.out.println("喵喵喵");
}
}
//定义静态方法animalshout()
public static void animalShout(Animal an){
an.shout(); //调用传入对象an的shout()方法
}
}
animalShout(new Cat()); //调用animalshout()方法传入Cat对象
}
//定义静态方法animalShout()
//定义静态方法animalshout()
public static void animalShout(Animal an){
an.shout(); //调用传入对象an的shout()方法
}