1、认识匿名内部类

/*
匿名内部类
就是内部类的简化写法。 前提:存在一个类或者接口
这里的类可以是具体类也可以是抽象类。 匿名内部类的格式:
new 类名或者接口名(){
重写方法;
};这代表的是一个子类对象 本质是什么呢?
是一个继承了该类或者实现了该接口的子类匿名对象。
*/
interface Inter {
public abstract void show();
public abstract void show2();
} class Outer {
public void method() {
//接口里面只有一个方法的时候,只有show()
/*
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();
}
} 2、匿名内部类在开发中的使用 通过一个案例简单演示: interface Person {
    public abstract void study();
} class PersonDemo {
    public void method(Person p) {//这种方式,在前面介绍参数类型是引用类型的时候已经介绍过了。
//见博客(http://blog.csdn.net/qq_32059827/article/details/51344046)
        p.study();
    }
} //实现类
class Student implements Person {
    public void study() {
        System.out.println("好好学习,天天向上");
    }
} class InnerClassTest2 {
    public static void main(String[] args) {
        //测试
        PersonDemo pd = new PersonDemo();
        Person p = new Student();
        pd.method(p);
        System.out.println("--------------------");
        
        //匿名内部类在开发中的使用
       //结果和上面一模一样,使用匿名内部类的方式,可以节省内存空间。使用场景,方法比较少的时候使用。
        pd.method(new Person(){
            public void study() {
                System.out.println("好好学习,天天向上");
            }
        });
    }
}

最新文章

  1. SQL 笔记 By 华仔
  2. Vijos1053 Easy sssp[spfa 负环]
  3. linux笔记二-----目录及文件命令
  4. TFS增加dataserver
  5. Jackson 高性能的JSON处理 ObjectMapper
  6. 关于location.href几种用法的区别
  7. CSS——伪元素与伪类
  8. 简单的html5布局
  9. 使用Identity Server 4建立Authorization Server (6) - js(angular5) 客户端
  10. 20165314 2016-2017-2 《Java程序设计》第9周学习总结
  11. github 首页不显示提交记录
  12. 协议无关组播-密集模式 PIM-DM
  13. requirements.txt 的使用与创建
  14. 【C语言】练习3-5
  15. JAVA中如何正确的用String转Date
  16. 整理ASP.NET MVC 5各种错误请求[401,403,404,500]的拦截及自定义页面处理实例
  17. java集合框架03——ArrayList和源码分析
  18. Android Proguard使用技巧
  19. [转发]jQuery Validation范例
  20. ASP.NET基础(一)

热门文章

  1. Android常用的编译命令
  2. python 3 黑色魔法元类初探
  3. J2EE进阶(十四)超详细的Java后台开发面试题之Spring IOC与AOP
  4. x264源代码简单分析:熵编码(Entropy Encoding)部分
  5. 学习TensorFlow,保存学习到的网络结构参数并调用
  6. 带你深入理解STL之Stack和Queue
  7. FFmpeg源代码简单分析:av_write_frame()
  8. EBS系统克隆
  9. android开发之this.finish()的使用
  10. UNIX网络编程——使用select函数的TCP和UDP回射服务器程序