匿名内部类:就是没有类名字的内部类。
匿名内部类作用:简化内部类书写。
匿名内部类的前提:必须继承一个父类或者是实现一个接口。
匿名内部类的格式:
new 父类或者接口(){ 执行代码….};
内部类的写法:
class Outer{
class Inner
{
public void show(){
System.out.println("内部类的show方法");
}
}
public void print(){
new Inner().show();
}
}
匿名内部类调用show方法:
abstract class inner3{
abstract void show();
}
class Outer3{
public void print(){
new inner3(){
@Override
void show() {
System.out.println("内部类的show方法");
}
}.show();
}
}
在外部类调用show1、show2方法。内部类的实现方法
public class annoyedClass4{
public static void main(String[] args) {
new Outer4().print();
}
}
class Outer4{
class Inner4{
public void show1(){
System.out.println("show1");
}
public void show2(){
System.out.println("show2");
}
}
public void print(){
Inner4 inner4 = new Inner4();
inner4.show1();
inner4.show2();
}
}
使用匿名内部类实现:
public class annoyedClass5{
public static void main(String[] args) {
new Outer5().print();
}
}
interface Inner5{
void show1();
void show2();
}
class Outer5{
Inner5 inner5=new Inner5(){
public void show1(){
System.out.println("show1");
}
public void show2(){
System.out.println("show2");
}
};
public void print(){
inner5.show1();
inner5.show2();
}
}
**注意细节:
1.使用匿名内部类时,如果需要调用匿名内部类的两个方法或者两个方法以上。可以使用变量指向该对象。**