学堂 学堂 学堂公众号手机端

java语言基础(49)——匿名内部类的本质理解

lewis 1年前 (2024-04-05) 阅读数 5 #技术


1 匿名内部类就是内部类的简化写法

2 前提,存在一个类或接口


3 格式: new 类名或接口名(){

重写方法......

}

4 好处:用完即回收。少占内存。

上代码:


interface Inner  // 接口
{
public abstract void show();
}
abstract class InnerClass // 抽象类 也可以是具体类
{
public abstract void show();
public abstract void show2();
}

class Outer
{
public void method(){
// 接口匿名内部类
new Inner(){
public void show(){
System.out.println("Inner show");
}
}.show(); //输出 Inner show

// 抽象类匿名内部类 多态思想 调用多个方法
InnerClass IC = new InnerClass(){
public void show(){
System.out.println("InnerClass show");
}
public void show2(){
System.out.println("InnerClass show2");
}
};

IC.show(); //InnerClass show
IC.show2();//InnerClass show2

}

}

class AnonymousInnerClassTest
{
public static void main(String[] args){
Outer o = new Outer();
o.method();
}
}


抽象类和接口本来是不可以new操作的,但是此处可以,那是因为new 和 实现同时进行了。匿名 new 接口时,相当于new了一个实现了此接口的对象。匿名new抽象类时,相当于new了一个继承了此抽象类的子类对象。然后,对象可以调用其对应的方法。





版权声明

本文仅代表作者观点,不代表博信信息网立场。

热门