5、内部类
内部类
1.普通内部类
-
定义
在一个类中,我们定义其他类,这些类就被称为内部类。
-
特征
- 内部类可以直接引用外部类的成员和方法,无视权限修饰符
- 内部类在文件中以 ‘’外部类$内部类名字.class‘’ 文件形式存在
2. 匿名内部类
先看抽象类Animal:
public abstract class Animal {
public String name;
public Animal() {
}
public abstract String print();
}
再看测试类Test:
public class Test {
public static void main(String[] args) {
Animal animal = new Animal() {
@Override
public String print() {
return "这是动物类";
}
public String cry() {
return "呜呜";
}
};
}
}
我们知道,抽象类无法直接实例化,必须有类继承抽象类并且实现里面的方法,我们上面的new操作就是创建了一个内部类,这个类是实现了Animal这个抽象类的一个内部类,只不过是没有名字罢了,所以叫匿名内部类,既然是内部类,name我们可以在其内部及创建新的方法cry();

浙公网安备 33010602011771号