根据内部类的位置不同,可将内部类分为
- 成员内部类
- 局部内部类
class C{
//成员内部类
class B{
}
public void show1() {
//局部内部类
class D{
}
}
}
匿名内部类
- 概念:即内部类的简化写法
- 前提:存在一个类(可以是具体类也可以是抽象类)或接口
- 格式:new 类名或接口名{重写的方法}
- 本质:创建的是继承了类或实现了接口的子类匿名对 象。
Java语言规范上是这么描述匿名类的:
匿名类的声明:
- 匿名类的声明是由java编译器自动派生自一个类实例创建表达式。
- 匿名类永远不能是抽象的。
- 匿名类总是隐式的final。
- 匿名类总是一个内部类;并且不能是static的。
匿名内部类在开发中的使用,一般是方法参数为接口的情况
interface D{
void ShowContext();
}
class B{
//参数为接口对象
public void show(D d) {
d.ShowContext();
}
}
public class niming {
public static void main(String[]args) {
B b=new B();
//调用时使用匿名类创建匿名对象
b.show(new D(){
@Override
public void ShowContext() {
System.out.println("hello");
}
});
}
}
网友评论