可以分成兩個部份來理解,先把簡化實現的方式拿出來理解,接著再把以下程序丟到類中方法內,這樣理解比較不會這麼亂
public static void main(String[] args) {
new Inter(){ //实现接口
public void show1(){
System.out.println("show1");
}
public void show2(){
System.out.println("show1");
}
}.show1();
}
}
interface Inter { //匿名内部类接口
public void show1();
public void show2();
}
//直接调用
class Demo {
public static void main(String[] args){
Outer o=new Outer();
o.method();
}
}
interface Inter {
public void show1();
public void show2();
}
class Outer {
public void method(){
new Inter(){
public void show1(){
System.out.println("show1");
}
public void show2(){
System.out.println("sho1");
}
}.show1();
new Inter(){
public void show1(){
System.out.println("show2");
}
public void show2(){
System.out.println("show2");
}
}.show2();
//父类调用子类对象实现
class Demo {
public static void main(String[] args){
Outer o=new Outer();
o.method();
}
}
interface Inter { //匿名对象接口
public void show1();
public void show2();
}
class Outer { //外部类
public void method(){ //外部类方法
Inter i=new Inter(){ //父类对象引用子类对象
public void show1(){
System.out.println("show1");
}
public void show2(){
System.out.println("show2");
}
};
i.show1(); //编译看借口中show1方法,运行看子类中的show1方法
i.show2();
}
}