day11-匿名内部类和匿名对象的区别
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
package com.inmind.inner_class03;
|
||||
|
||||
/*
|
||||
匿名内部类:定义在方法中的一个没有名字的类(属于局部内部类的一种),它的本质是一个父类或者接口的子类或实现类
|
||||
匿名内部类的定义:
|
||||
@@ -59,7 +60,44 @@ public class Demo04 {
|
||||
}
|
||||
};
|
||||
nc.mehtod();
|
||||
System.out.println("-------------------以下是匿名对象和匿名内部类的介绍----------------");
|
||||
//匿名内部类和匿名对象的区别
|
||||
//new Scanner(System.in).nextInt();//匿名对象
|
||||
//匿名对象(包含了匿名内部类的定义)
|
||||
new MyInterface(){//当前的大括号里面就是接口实现类的定义(匿名内部类)
|
||||
//当前既是匿名内部类,也是MyInterface的实现类
|
||||
@Override
|
||||
public void method() {
|
||||
System.out.println("匿名内部类【实现类】实现了抽象方法method");
|
||||
}
|
||||
}.method();
|
||||
System.out.println("-----------------------------------");
|
||||
|
||||
//匿名内部类·书写起来很麻烦,直接使用快捷方式:new 接口名|抽象父类名|普通类名 弹出{....}
|
||||
MyInterface myInterface2 = new MyInterface() {
|
||||
@Override
|
||||
public void method() {
|
||||
System.out.println("匿名内部类重写了method方法");
|
||||
}
|
||||
};
|
||||
myInterface2.method();
|
||||
|
||||
AbstraceClass ac1 = new AbstraceClass() {
|
||||
@Override
|
||||
public void method() {
|
||||
|
||||
}
|
||||
};
|
||||
|
||||
NomalClass nc1 = new NomalClass(){
|
||||
int i;
|
||||
String name;
|
||||
|
||||
@Override
|
||||
public void mehtod() {
|
||||
super.mehtod();
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user