内部类--匿名内部类--java进阶day03
1.匿名内部类

在介绍匿名内部类前,先引用一段代码材料,通过这段代码来理解匿名内部类
如下图,我们定义了接口和一个方法,方法中调用该接口的抽象方法,这时我们要调用use方法,但是该怎么传参呢?
我们将接口放入()里,发现是报错,那如果new一个对象呢?也不行,因为接口根本不能实例化

既然从接口本身无法下手,那我们可以用对象多态来解决,把实现类放到()不就可以了

结论:今后调用方法时,如果方法的形参是接口类型,我们传入的就是该接口的实现类对象
虽然解决了问题,但我们发现,为了调用一个形参是接口的方法,我们做了很多步骤,十分麻烦。但如果用的是匿名内部类,我们只需一步就可以解决
形参是接口类型,所以要传入实现类对象,这里我们根据匿名内部类的写法写入()
匿名内部类本质是在继承类或是实现接口,以下图举例,当我们new Inter(){ } 其实是在实现Inter这个接口,相当于不需要实现类就可以实现这个接口

既然实现接口,那肯定要重写接口里的方法,所以这里才会报错

整个这一坨就是接口的实现类对象

匿名内部类使用场景
虽然学了匿名内部类,但这并不意味着我们要放弃普通的实现类,假如一个接口中有许多抽象方法,我们调用时用的匿名内部类

很明显,阅读性不高。所以,当接口中抽象方法少的时候,我们可以使用匿名内部类快速实例化,多的时候还是得用实现类,再选择我们要调用的方法

内部类--匿名内部类--java进阶day03的更多相关文章
- Java进阶(四十二)Java中多线程使用匿名内部类的方式进行创建3种方式
Java中多线程使用匿名内部类的方式进行创建3种方式 package cn.edu.ujn.demo; // 匿名内部类的格式: public class ThreadDemo { public st ...
- java基础(十四)-----详解匿名内部类——Java高级开发必须懂的
在这篇博客中你可以了解到匿名内部类的使用.匿名内部类要注意的事项.匿名内部类使用的形参为何要为final. 使用匿名内部类内部类 匿名内部类由于没有名字,所以它的创建方式有点儿奇怪.创建格式如下: n ...
- JAVA基础-栈与堆,static、final修饰符、内部类和Java内存分配
Java栈与堆 堆:顺序随意 栈:后进先出(Last-in/First-Out). Java的堆是一个运行时数据区,类的对象从中分配空间.这些对象通过new.newarray.anewarray和mu ...
- Java进阶之路
Java进阶之路——从初级程序员到架构师,从小工到专家. 怎样学习才能从一名Java初级程序员成长为一名合格的架构师,或者说一名合格的架构师应该有怎样的技术知识体系,这是不仅一个刚刚踏入职场的初级程序 ...
- Java进阶路线图
第一阶段 技术名称 技术内容 J2SE(Java基础部分) Java开发前奏 计算机基本原理,Java语言发展简史以及开发环境的搭建,体验Java程序的开发,环境变量的设置,程序的执行过程,相关反编译 ...
- Java 进阶 hello world! - 中级程序员之路
Java 进阶 hello world! - 中级程序员之路 Java是一种跨平台的语言,号称:"一次编写,到处运行",在世界编程语言排行榜中稳居第二名(TIOBE index). ...
- Java进阶(五)Java I/O模型从BIO到NIO和Reactor模式
原创文章,同步发自作者个人博客,http://www.jasongj.com/java/nio_reactor/ Java I/O模型 同步 vs. 异步 同步I/O 每个请求必须逐个地被处理,一个请 ...
- Java线程间通信方式剖析——Java进阶(四)
原创文章,同步发自作者个人博客,转载请在文章开头处以超链接注明出处 http://www.jasongj.com/java/thread_communication/ CountDownLatch C ...
- Java进阶(三)多线程开发关键技术
原创文章,同步发自作者个人博客,转载请务必以超链接形式在文章开头处注明出处http://www.jasongj.com/java/multi_thread/. sleep和wait到底什么区别 其实这 ...
- 当我们说线程安全时,到底在说什么——Java进阶系列(二)
原创文章,同步发自作者个人博客,转载请以超链接形式在文章开头处注明出处http://www.jasongj.com/java/thread_safe/ 多线程编程中的三个核心概念 原子性 这一点,跟数 ...
随机推荐
- [LC593]有效的正方形-Valid Square
题目描述 给定2D空间中四个点的坐标 p1, p2, p3 和 p4,如果这四个点构成一个正方形,则返回 true . 点的坐标 pi 表示为 [xi, yi] .输入 不是 按任何顺序给出的. 一个 ...
- Jmeter使用(1)_返回结果作为下一个的参数
一.用户登录返回结果 {{"code":200, "token":"dbfab2d6c79e4981a86775f"}} 二.查询信息接口h ...
- Note -「A. Algebra 24 Aut.」“还有一束日光正在为你送达”
欢迎勘误吖! 喵, 你可以 Ctrl-F 搜 "lww" 获取少量 lww 笑话. (雾 ↓下面这个是我目前用的 LaTeX 宏, 如果需要可以 "Show ...
- .NET 异步 /Task
老版本的写法经常是以BeginXXX, EndXXX, 或者xx.xxxAsycn(........) 新的支持 async异步关键字配合Task可读性和易用性比老板好多了. 新旧例子: using ...
- 双指针习题:Binary Deque
14.Binary Deque 题面翻译 Binary Deque - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 有多组数据. 每组数据给出 \(n\) 个数,每个数为 \(0\) ...
- C#NPOI示例
主程序要添加NPOI的库.代码如下 static void Main(string[] args) { Export(); } public static void Export() { // 创建新 ...
- tmux中的vim无法多彩高亮显示关键字
1. 问题描述 vim安装了interastingwords插件,在mobaxterm中的session可以正常显示多彩关键字,但是使用tmux登录session,只能显示两个颜色 2. 解决办法 这 ...
- 反射:获取Class 类的实例(四种方法)
Class 类 对象照镜子后可以得到的信息:某个类的属性.方法和构造器.某个类到底实现了哪些接口.对于每个类而言,JRE 都为其保留一个不变的 Class 类型的对象.一个 Class 对象包含了 ...
- delphi中实现http请求和提交
在对接本地的一个药械监管系统使用实现的代码,编译环境delphi Xe7 ,使用类TIdHTTP实现网络的get请求和post提交 //设置组件的属性 procedure TfrmMain.SetHt ...
- Java03-程序流程控制
Java程序流程控制 [ 任务列表 ] 1.选择结构(if.switch) 2.循环结构(for.while.do-while) 3.跳转关键字(break.continue.return) 4.其他 ...