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

来源:7-5 什么是 Java 中的内部类

double_kill

2015-11-23 21:26

如题,是用的不多吗

写回答 关注

2回答

  • 天启之魂
    2015-11-23 22:39:00
    已采纳
    //再给你附个例子
    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();


    _Jack_... 回复天启之魂

    new fu(){}里隐藏了一个内部类的对象吗?

    2016-01-02 17:54:00

    共 4 条回复 >

  • 天启之魂
    2015-11-23 22:37:58

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

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

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

Java入门第二季 升级版

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

530561 学习 · 6091 问题

查看课程

相似问题