匿名内部类
特点:
1. 一次性:创建之后只使用一次,没有名字,直接new;
2. 前提有一个类或者一个接口,才能有匿名内部类。这个类或者接口建议只有一个方法;
3. 方法在不同的包中,访问类型是protected类型时,可以用匿名内部类的方法来调用,如下代码:
黄色的和红色框在不同的包里:
package TestProtected; import TestProtectesOne.User; public class Test1 { public static void main(String[] args) { User1 user1 = new User1();//同一个包的类User1 user1.number(4, 4);//当方法protected访问类型 可以调用。 User user = new User(); //不同包的类 User,不能调用proteced类型的方法 //怎么处理这类问题? 答:用匿名内部类 int i = new User() { protected int number(int a,int b) { return a+b; } }.number(8, 1); System.out.print(i); } }
注:新建的包要起名字,如果不起名字,此包不能被其他包导入