1.匿名内部类:其实就是内部类的简化形式,它所体现的就是一个类或者接口的子类对象。
前提:
     内部类必须继承或实现外部类或接口。

格式:
    new 父类&接口(){};
    其实就是一个子类对象,用{};结束

匿名内部类在程序中的体现形式有三种:
 1.父类为普通的类

class Inter{}class OuterTest{public static void function(){new Inter(){private int num = 9;void show(){System.out.println("这是Inter子类的成员变量num="+num);}}.show();/*若改以上代码为:编译时就会报错了,因为编译时检查左边类型Inter类中并没有show()方法Inter in = new Inter(){};in.show();*/}
}class  MyOuterDemo
{public static void main(String[] args) {OuterTest.function();}
}

2.父类为抽象类(子类中一定要覆盖抽象方法)

 2.父类为抽象类(子类中一定要覆盖抽象方法)
abstract class Test{abstract void show();
}class Outer{int x = 8;/* 这是匿名内部类的完整形式class Inter extends Test{void show(){System.out.println(x);}}*/public void method(){//new Inter().show();
Test t = new Test(){void show(){System.out.println("x="+x);System.out.println("这是覆盖Test抽象类中的方法,因为子类继承它就必须覆盖");}void show1(){System.out.println("这是Test子类自己的方法");}};t.show();//t.show1();运行这个里会报错,因为Test抽象类中并没有show1()方法
        }
}class OuterInterDemo
{public static void main(String[] args) {new Outer().method();}
}

3.父类为接口interface

interface Inter{void show();
}class Outer{static Inter method(){return new Inter(){public void show(){System.out.println("show run");}};}
}class OuterTest1
{public static void main(String[] args) {Outer.method().show();/*上面一句,相当于:Inter in = Outer。method();in.show();*/}
}

什么时候使用匿名内部类?
   当函数的参数是一个接口类型时,该接口中的方法不超过3个的时候(因为方法过多时,产生匿名内部类的方法就变得太臃肿了),为了简化代码,将匿名内部类作为参数进行传递。

转载于:https://www.cnblogs.com/luihengk/p/4052466.html

java学习笔记day06---匿名内部类相关推荐

  1. 21天学通Java学习笔记-Day06

    Day06: 限定符: *限定符 public ,protected 和 private 用于控制类,方法和变量的访问 *限定符 static 用于创建类方法和类变量 *限定符 final 用于固定( ...

  2. Java学习笔记Day06 工具类及常用算法

    第六章 工具类及常用算法 文章目录 第六章 工具类及常用算法 Java语言基础类 Java基础类库 Object类 概述 toString方法 方法摘要 覆盖重写 equals方法 方法摘要 默认地址 ...

  3. 【Java学习笔记之二十六】深入理解Java匿名内部类

    在[Java学习笔记之二十五]初步认知Java内部类中对匿名内部类做了一个简单的介绍,但是内部类还存在很多其他细节问题,所以就衍生出这篇博客.在这篇博客中你可以了解到匿名内部类的使用.匿名内部类要注意 ...

  4. java学习笔记9--内部类总结

    java学习笔记系列: java学习笔记8--接口总结 java学习笔记7--抽象类与抽象方法 java学习笔记6--类的继承.Object类 java学习笔记5--类的方法 java学习笔记4--对 ...

  5. 郑志远的java学习笔记

    郑志远的java学习笔记 郑志远    CCB 1         Java起源 略 2         Java语言概述 1.面向对象编程的3个原则:封装(encapsulation).继承(inh ...

  6. 《Java学习笔记(第8版)》学习指导

    <Java学习笔记(第8版)>学习指导 目录 图书简况 学习指导 第一章 Java平台概论 第二章 从JDK到IDE 第三章 基础语法 第四章 认识对象 第五章 对象封装 第六章 继承与多 ...

  7. 2022年Java学习笔记目录

    一.2022年Java任务驱动课程 任务驱动,统摄知识点:2022年Java程序设计讲课笔记 二.2022年Java学习笔记 (一)踏上Java开发之旅 Java学习笔记1.1.1 搭建Java开发环 ...

  8. java学习笔记11--Annotation

    java学习笔记11--Annotation Annotation:在JDK1.5之后增加的一个新特性,这种特性被称为元数据特性,在JDK1.5之后称为注释,即:使用注释的方式加入一些程序的信息. j ...

  9. java学习笔记13--反射机制与动态代理

    本文地址:http://www.cnblogs.com/archimedes/p/java-study-note13.html,转载请注明源地址. Java的反射机制 在Java运行时环境中,对于任意 ...

  10. 准备写java学习笔记

    准备写java学习笔记 java int 转载于:https://blog.51cto.com/cryingcloud/1975267

最新文章

  1. 大三Java后端暑期实习面经总结——Java多线程并发篇
  2. 深度卷积生成对抗网络
  3. WinWordControl控件的使用注意
  4. Hibernate 连接池的三种配置方式
  5. 填平新版本Xcode安装插件不成功的坑
  6. HIT 2060 Fibonacci Problem Again
  7. python常用函数中文_【python】python常用函数
  8. 如何访问个人邮箱中的未读邮件
  9. 微信小程序测试点分类和总结
  10. FudanNLP 复旦分词系统 小试一把
  11. 甲乙丙丁四个人去商店每人买了一台计算机,2016国考行测备考:巧用矛盾速解题...
  12. 织梦ajax登录界面,dede织梦后台登陆成功后又跳转到登陆页面
  13. saas 测试_为什么SaaS公司需要进行安全测试?
  14. PTA: 统计专业人数 (15分)(C语言)
  15. Gilma(ILMerge GUI)汉化版发布
  16. 洛谷——P2028 龙兄摘苹果
  17. Zigbee基础知识介绍 - 新兵训练营(1)
  18. 工业计算机工控机管理规定,工业控制计算机\工控机检验标准
  19. 判断字符串是否是回文串
  20. 基于python命令流及代码的Plaxis自动化建模

热门文章

  1. Java_StringBuffer类
  2. WinAPI: GetSystemPowerStatus - 获取系统电源状态的信息
  3. HTML技巧100例(三)
  4. 陷入迷茫的时候怎么办呢?
  5. 在家办公效率最高的组合!
  6. 游戏框架设计的一些心得
  7. logback基本入门
  8. [Linux] vim的高亮查找操作
  9. 《树莓派学习指南(基于Linux)》——第 2 章 开始探索 2.1 欢迎使用LXDE
  10. MyBitis(iBitis)系列随笔之二:类型别名(typeAliases)与表-对象映射(ORM)