为了账号安全,请及时绑定邮箱和手机立即绑定

为什么没介绍匿名内部类呢

如题,是用的不多吗

正在回答

2 回答

//再给你附个例子
public class Fu {
    int a=3;
    public void show1(){
        System.out.println(a+"...Fu show1 run");
    }
    public void show2(){
        System.out.println(a+"...Fu show2 run");
    }
    
    public static void main(String[] args) {
        //正常通过对象调用Fu的变量a和show方法
        Fu f1=new Fu();
        System.out.println(f1.a);
        f1.show1();
                
    //通过匿名内部类调用Fu的变量a和show方法
    //这样做没什么意义,只是说明了new Fu(){}代表了一个子类对象
        System.out.println(new Fu(){}.a);        
        new Fu(){}.show1();
        
    //通过匿名内部类调用Fu类的子类方法中的a和show方法
    //好处,不用再去创建一个子类,即可重写父类中的属性和方法
    //注意,这里调用的a是子类中的a(不是多态)
        System.out.println(new Fu(){
            int a=4;
        }.a);
        new Fu(){
            public void show(){
                System.out.println(a+"...Zi show1 run");
            }
        }.show();


1 回复 有任何疑惑可以回复我~
#1

double_kill 提问者

非常感谢!讲的非常详细,基本看懂了
2015-11-24 回复 有任何疑惑可以回复我~
#2

天启之魂 回复 梁XX

......好吧,这都被你发现了...
2015-12-14 回复 有任何疑惑可以回复我~
#3

_Jack_Han_ 回复 天启之魂

new fu(){}里隐藏了一个内部类的对象吗?
2016-01-02 回复 有任何疑惑可以回复我~
查看1条回复

不知道为什么没讲 相对匿名内部类用的还是有的 不说要会用但是一定要能看懂

下面是我自己总结的 不知道你能不能看懂

匿名内部类就是内部类的简写格式,使用内部类必须有前提:内部类必须继承或者实现一个外部类或者接口
匿名内部类:其实就是一个匿名子类对象   
    语法 new 匿名内部类的父类名(){子类内容}
    子类内容中如果有方法的覆盖,方法的访问修饰符必须是public
    如果匿名内部类中有多个成员需要调用, 可以新建个父类类型的引用变量来保存匿名内部类,然后通过引用型变量来访问匿名内部类中的成员
    使用变量访问的只是父类中也有的成员(即多态结合匿名内部类)

2 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
Java入门第二季 升级版
  • 参与学习       530633    人
  • 解答问题       6091    个

课程升级!以终为始告别枯燥,在开发和重构中体会Java面向对象编程的奥妙

进入课程

为什么没介绍匿名内部类呢

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信