码迷,mamicode.com
首页 > 其他好文 > 详细

02.匿名内部类

时间:2018-06-01 13:19:22      阅读:117      评论:0      收藏:0      [点我收藏+]

标签:继承   子类   接口   匿名内部类   固定   简化   new   内部类   存在   

描述:匿名内部类就是内部类的简化写法。

前提条件:存在一个类或者接口,这里的类可以是具体的类,也可以是抽象类。

格式:

  固定格式写法(无理由的):

  new 类名或者接口名() {

    重写方法;

  }

 

匿名内部类本质:

  就是一个继承了该类或者实现了该接口的子类匿名对象。

  该对象为:

new Inter() { //多态
            public void show() {
                System.out.println("show");
            }
            
            public void show2() {
                System.out.println("show2");
            }
        }

 

具体实例:

/*
    匿名内部类
        就是内部类的简化写法。

    前提:存在一个类或者接口
        这里的类可以是具体类也可以是抽象类。
    
    格式:
        new 类名或者接口名(){
            重写方法;
        }
        
    本质是什么呢?
        是一个继承了该类或者实现了该接口的子类匿名对象。
*/
interface Inter {
    public abstract void show();
    public abstract void show2();
}

class Outer {
    public void method() {
        //一个方法的时候
        /*
        new Inter() {
            public void show() {
                System.out.println("show");
            }
        }.show();
        */
        
        //二个方法的时候
        /*
        new Inter() {
            public void show() {
                System.out.println("show");
            }
            
            public void show2() {
                System.out.println("show2");
            }
        }.show();
        
        new Inter() {
            public void show() {
                System.out.println("show");
            }
            
            public void show2() {
                System.out.println("show2");
            }
        }.show2();
        */
        
        //如果我是很多个方法,就很麻烦了
        //那么,我们有没有改进的方案呢?
        Inter i = new Inter() { //多态
            public void show() {
                System.out.println("show");
            }
            
            public void show2() {
                System.out.println("show2");
            }
        };
        
        i.show();
        i.show2();
    }
}

class InnerClassDemo6 {
    public static void main(String[] args) {
        Outer o = new Outer();
        o.method();
    }
}

 

02.匿名内部类

标签:继承   子类   接口   匿名内部类   固定   简化   new   内部类   存在   

原文地址:https://www.cnblogs.com/licl11092/p/9120784.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!