匿名内部类
前提:存在一个类或者接口.(类可以是抽象类,也可以是具体类)
格式:new 类名或者接口名(){重写方法;},存在于方法当中.
本质:是一个继承了类或者实现了接口子类的匿名对象.
匿名内部类具体格式:
interface 接口名{
抽象方法;
}
class 类名{
方法名(){
new 接口名(){
重写接口抽象方法;
};
}
}
调用匿名内部了中方法的两种形式:
第一种:在匿名内部类代码块的大括号外(.方法名;).然后通过在别的类中创建外部类对象调用匿名内部类存在的那个方法即可.
第二种:在new 接口名()前面用接口的引用变量接收,格式
接口名 引用变量 = new 接口名(){
重写方法
};
引用变量.被重写的抽象方法的方法名;
第二种其实就是多态,接口本来是不能创建对象的,在这里接口指向了实现了它的子类对象.引用变量指向的是子类对象(就是匿名内部类). |
|