面向对象_匿名内部类的方法调用

时间:2023-02-25 14:51:21
/*
匿名内部类
就是内部类简化写法

前提:存在一个类或者接口
这里的类可以是具体也可以是抽象类

格式:
new 类名或者接口(){
方法重写;
}

本质是什么呢?
是一个继承了该类或者实现了该接口的子类匿名对象。
*/
package cn.inner6;

interface Inter{
public abstract void show();
public abstract void show2();
}

class Outer{

public void method(){
//一个方法的时候
/*
new Iner(){
public void show(){
System.out.println("show");
}
}.show();
*/

//两个方法的时候
/*麻烦
new Iner(){
public void show(){
System.out.println("show");
}

public void show2(){
System.out.println("show2");
}

}.show();

new Iner(){
public void show(){
System.out.println("show");
}

public void show2(){
System.out.println("show2");
}

}.show2();
*/

//如果我是很多个方法,就很麻烦了
//那么,有没有改进的方案呢?
Inter i = new Inter(){//多态
public void show(){
System.out.println("show");
}

public void show2(){
System.out.println("show2");
}

};

i.show();
i.show2();

}
}

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