大家不要想太多
它就是一个子类,只不过没有名字而已,对于一个没有名字的子类那肯定得放在内部,所以就会叫匿名内部类。
省写一个子类,写法上更加简洁明了
public class Animal {
String name = "测试";
public Animal(){
System.out.println("创建对象");
}
public Animal(String name){
System.out.println("创建对象");
this.name = name;
}
public void xiaban(){
System.out.println("下班睡觉");
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
public class Person{
public static void main(String[] args) {
Animal animal= new Animal(){ // 匿名类,放在内部。只是new了一个动物,我们可以把它当做大象,也可以当做蟒蛇,也可以把它当做小蜜蜂
public void xiaban(){
System.out.println("我在看书");
}
};
animal.xiaban();
}
}
至于接口的匿名类,换成接口就行
String name = "测试";
public Animal(){
System.out.println("创建对象");
}
public Animal(String name){
System.out.println("创建对象");
this.name = name;
}
public void xiaban(){
System.out.println("下班睡觉");
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
public class Person{
public static void main(String[] args) {
Animal animal= new Animal(){ // 匿名类,放在内部。只是new了一个动物,我们可以把它当做大象,也可以当做蟒蛇,也可以把它当做小蜜蜂
public void xiaban(){
System.out.println("我在看书");
}
};
animal.xiaban();
}
}
至于接口的匿名类,换成接口就行