匿名内部类

特点:

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);
    }

}

注:新建的包要起名字,如果不起名字,此包不能被其他包导入

posted @ 2020-03-02 16:52  旺旺a  阅读(116)  评论(0编辑  收藏  举报