Anonymous Inner Class (匿名内部类) 是否可以extends(继承)其它类,是否可以implements(实现)interface(接口)?...

http://blog.csdn.net/fhm727/article/details/5220003

1、什么是匿名内部类?

      内部类,存在于另一个类内部的类,而匿名内部类,顾名思义,就是没有名字的内部类。

 

2、为什么需要匿名内部类?

     每个inner class都能够各自继承某一实现类(implementation)。因此,inner class不受限于outer class是否已继承自某一实现类。
如果少了inner class所提供的“继承自多个具象(concrete)或抽象(abstract)类”的能力,设计上和编程上的某些问题会变得十分棘手。

所以,从某个角度来看inner class,你可以说它是多重继承问题的完整解决方案。interface能够解决其中一部分问题,但inner classes
才能有效而实际地允许“多重实现继承(multiple implementation)”。也就是说,inner classes实际上允许你继承多个non-interface。

从这个层面上使用内部类时一般都是通过其父类或继承的接口来进行实例化和初始化的,如3中所示,这时内部类的名字(a)是多余的,所以就使用了匿名内部类

3、怎么实现匿名内部类?

     匿名内部类的实现非常简单,如有一接口
Interface A{public void method(); }

这时你可以写一个如下的语句得到接口A的实现类的对象

A a=new A(){ public void method(){System.out.println("hehe");} };

而其中的{ public void method(){System.out.println("hehe");} };就是定义了一个匿名内部类

4、问题答案以上可以看出匿名内部类在实现时必须借助一个类或一个接口,若从这个层次上讲它是可以继承其他类也可以实现接口的,但若是通过extendsimplements关键字那是不可能的。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/403266.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

VIM使用系统剪切板

在 Linux 终端模式下使用 vim 编辑器时发现经常需要在vim打开的文本文档进行复制粘贴,那么下面就跟着我的思路一步步往下走吧。 一、首先确认当前 vim 配置是不是支持系统剪切板,可以在终端模式下输入命令: vim --version | grep clipboard…

AndroidManifest.xml清单文件要点

AndroidManifest.xml AndroidManifest.xml清单文件通常包括如下内容: 应用程序的包名,该包名作为该应用的唯一标识。应用包含的组件,如Activity,Service,Broadcastreceiver和ContentProvider.应用程序使用系统所需的权限声明。其他程序访问该…

python操作Excel读写--使用xlrd

From: http://www.cnblogs.com/lhj588/archive/2012/01/06/2314181.html 一、安装xlrd模块 到python官网下载http://pypi.python.org/pypi/xlrd模块安装,前提是已经安装了python 环境。 也可以在命令行执行:easy_install xlrd (注意权限) 二、使用介绍…

el-table自动充满,且无滚动条;el-table某列的列宽自适应,其他列按比例分配。

情景一:例如首列按照内容自适应展开,其余列有各自的比例。这样设置,就不会出现滚动条。 注意点: 给需要自适应展开的列加 :width"flexColumnWidth"计算方法 就可以自适应展开需要给余下所有的列都设置 width“auto” mi…

DataGridView控件中显示图片及其注意事项 【z】

windows Forms编程里面有一个DataGridView控件,它不光是可以显示数据,可以显示按钮,复选框,甚至还可以显示图片。这些图片可以来自于数据库(用二进制的方式存储的),也可以来自文件系统。下面是一…

在winform上内嵌入其它的程序

这段代码很有意义,用于把一个程序的界面嵌入到我们自己程序的某个指定窗体上. 比如在某个项目里,我需要把基恩士的激光扫描轮廓显示给客户看,但是激光的DLL中并没有这种功能提供. 于是我想先启动激光的官方程序用以显示轮廓, 然后再把这种显示界面嵌入到我自己程序的界面上指定…

SPI总线时序

SPI,是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚,同时为PCB的布局上节省空间,提供方便,正是出于这种简单易用的特性,现在越来…

js计算浮点数出现小数;解决js计算小数问题;js数组相加出现小数;

原博1 原博2 方案1和方案2都是有效的 注意参数一定要是数字 而不能是字符串 否则会计算错误 情景: 在计算浮点数时候,出现多余小数。 例如: 1.11 1 2.1100000000000003 为什么计算小数会出现误差? 浮点数值的最高进度是17位…

Shell脚本中获取本机ip地址的3个方法

From: http://www.jb51.net/article/56585.htm 这篇文章主要介绍了Shell脚本中获取本机ip地址的3个方法,本文直接给出实现代码,需要的朋友可以参考下方法一: 复制代码 代码如下:/sbin/ifconfig -a|grep inet|grep -v 127.0.0.1|grep -v inet6|awk {print $2}|tr -d…

VMware安装系统时没有弹出分区设置

在安装虚拟机系统的时候,有时候会遇到在安装一些镜像时没有弹出分区设置的画面,比如,我在使用 VMware 安装 CentOS 的时候,在选择完镜像,设置好启动安装的时候系统自动为我划分了 3 个分区:/boot、/、swap分…

如何在postgresql中模拟oracle的dual表,来测试数据库最基本的连接功能?

还好,网上弄到的,,没有dual的数据库,可以试图用select函数不带from数据表的方式来实现返回值。 一段测试代码: try:conn psycopg2.connect(databasedb.service_name, userdb.username, passwordpassword, hostdb.ip, …

Linux 系统如何查看硬盘UUID与修改

一、查看 1. sudo blkid 2. ls -l /dev/disk/by-uuid 3. tune2fs -l /dev/sdb 二、修改与恢复 uuidgen 会返回一个合法的 uuid,结合 tune2fs 可以新生成一个 uuid 并写入 ext2,3,4 分区中: 比如新建或改变 sda5 的 uuid (需要 root 权限…

vue+element实现树状表格的增删改查;使用el-table树形数据与懒加载实现树状表格增删改查

以下代码可以直接复制使用 一、情景: 列表是一个树状表格,可以无限添加下级,以及对列表的某一行进行增删改查(目前查没有写)。 原博链接 二、本篇是在原博主的代码基础上添加了部分功能。 功能1: 给树状表格…

定时任务 Crontab命令 详解

From: http://www.centoscn.com/CentOS/help/2014/1030/4025.html 前言 crontab是Unix和Linux用于设置周期性被执行的指令,是互联网很常用的技术,很多任务都会设置在crontab循环执行,如果不使用crontab,那么任务就是常驻程序&…

Web Js 按键事件……Enter提交事件 Enter Js事件

$(document).ready(function(){document.onkeydown function (event){ if (event.keyCode13) //回车键的键值为13 submit();}; });$(document).ready(funtion) 可以简写为 ↓ $(function(){});转载于:https://www.cnblogs.com/blogs2014/p/5789256.html

ISCSI 1-由零开始

iSCSI的概念 iSCSI,即Internet SCSI,是IETF制订的一项标准,用于将SCSI数据块映射为以太网数据包。从根本上说,它是一种基于IP Storage理论的新型存储技术,该技术将存储行业广泛应用的SCSI接口技术与IP网络技术相结合&a…

js获取当前日期并格式化(多种格式)

获取当前日期的格式:2022-01-07 或者 2022/01/07 或者 2022-01-07 12:00:00 或者 2022/01/07 12:00:00 原博链接 方法1: // 对Date的扩展,将 Date 转化为指定格式的String // 月(M)、日(d)、小时(h)、分(m)、秒(s)、季度(q) 可以用 1-2 个…

为什么移动硬盘的实际容量比标注容量小

很多网友都反映,自己的移动硬盘实际容量并没有厂商标注的容量大,都怀疑自己是不是被坑了,其实不是的,小编现在为你解密为何硬盘实际容量小于标注容量的问题。对于此种情况,有多方面原因导致1.对于存储容量的计算&#…

bash: mail: command not found的解决方法

From: http://hxl2009.blog.51cto.com/779549/884569 近日,安装了一个最小化的centos 6.2 64bit,系统中显示有root用户的mail,想用mail命令查看相关信件, 但发现一个问题: -bash: mail: command not found 呵呵&#…

Who is the best at Dataset X?

推荐一个关于分类、目标检测、姿态估计的数据集收藏的网页。 Did you ever want to quickly learn?which paper provides the best results on standard dataset X ?Wait no more, just click below and discover the current state of the art. URL:ht…