Anonymous Inner Class (匿名内部类) 是否可以extends(继承)其它类,是否可以implements(实现)interface(接口)?
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中所示,这时内部类的名字是多余的,所以 就使用了匿名内部类
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、问题答案
    以上可以看出匿名内部类在实现时必须借助一个类或一个接口,若从这个层次上讲它是可以继承其他类也可以实现接口的,
但若是通过extends
或implements
关键字那是不可能的												
											Anonymous Inner Class (匿名内部类) 是否可以extends(继承)其它类,是否可以implements(实现)interface(接口)?的更多相关文章
- Anonymous Inner Class (匿名内部类) 是否可以extends(继承)其它类,是否可以implements(实 现)interface(接口
		匿名的内部类是没有名字的内部类.不能extends(继承) 其它类,但一个内部类可以作为一个接口,由另一个内部类实现 
- 【Java面试题】13 Anonymous Inner Class (匿名内部类) 是否可以extends(继承)其它类,是否可以implements(实现)interface(接口)?
		1.什么是匿名内部类? 内部类,存在于另一个类内部的类,而匿名内部类,顾名思义,就是没有名字的内部类. 2.为什么需要匿名内部类? 每个inner class都能够各自继承某一实现类(implemen ... 
- JAVA 构造器, extends[继承], implements[实现], Interface[接口], reflect[反射], clone[克隆], final, static, abstrac
		记录一下: 构造器[构造函数]: 在java中如果用户编写类的时候没有提供构造函数,那么编译器会自动提供一个默认构造函数.它会把所有的实例字段设置为默认值:所有的数字变量初始化为0;所有的布尔变量设置 ... 
- JAVA与多线程开发(线程基础、继承Thread类来定义自己的线程、实现Runnable接口来解决单继承局限性、控制多线程程并发)
		实现线程并发有两种方式:1)继承Thread类:2)实现Runnable接口. 线程基础 1)程序.进程.线程:并行.并发. 2)线程生命周期:创建状态(new一个线程对象).就绪状态(调用该对象的s ... 
- 接口是否可继承接口? 抽像类是否可实现(implements)接口? 抽像类是否可继承实体类(concrete class)?
		接口是否可继承接口? 抽像类是否可实现(implements)接口? 抽像类是否可继承实体类(concrete class)? 1. 接口可以继承接口. 2. 抽像类可以实现(implements)接 ... 
- Anonymous Inner Class(匿名内部类)是否可以继承其它类?是否可以实现接口?
		可以继承其他类或实现其他接口,在 Swing 编程和 Android 开发中常用此方式来 实现事件监听和回调. 
- 创建线程的一般方式和匿名内部类方式对比——继承thread类,重写run()方法
		第一种:继承thread类,重写run()方法 一般方式:Demo01.java /** * 创建线程的第一种方式:继承thread类,重写run()方法 * * @author :liuqi * @ ... 
- ES6 extends继承及super使用读书笔记
		extends 继承 extends 实现子类的继承 super() 表示父类的构造函数, 子类必须在 constructor中调用父类的方法,负责会报错. 子类的 this 是父类构造出来的, 再在 ... 
- 接口是否可继承(extends)接口?抽象类是否可实现(implements)接口?抽象类是否可继承具体类(concrete class)?
		接口可以继承接口,而且支持多重继承.抽象类可以实现(implements)接口,抽象类可继承具体类也可以继承抽象类. 
- 接口是否可继承(extends)接口?抽象类是否可实现  (implements)接口?抽象类是否可继承具体类(concrete  class)?
		接口可以继承接口,而且支持多重继承.抽象类可以实现(implements)接口,抽象类可继承具体类也可以继承抽象类. 
随机推荐
- Upgrade to or Install Cinnamon 2.4 in Ubuntu
			http://www.omgubuntu.co.uk/2014/11/install-cinnamon-2-4-ubuntu-14-04-lts sudo add-apt-repository ppa ... 
- Angular 4.0  安装组件
			安装组件 ng g componet 组件名 
- windows server 2008 修改域的密码策略
			1.一般情况下,进入本地安全策略修改密码策略时,,密码策略已经被锁定,无法更改,若要修改域服务器上的密码策略,请按照步骤2--6进行修改 2.在此情况下要改密码策略的过程如下, 进入组策略管理: 3. ... 
- HttpURLConnection与HttpClient浅析---转
			HttpURLConnection与HttpClient浅析 1. GET请求与POST请求 HTTP协议是现在Internet上使用得最多.最重要的协议了,越来越多的Java应用程序需要直接通过HT ... 
- 峰Spring4学习(2)依赖注入的几种方式
			一.装配一个bean 二.依赖注入的几种方式 com.cy.entity People.java: package com.cy.entity; public class People { pri ... 
- sublime text 3 3143
			下载链接:https://download.sublimetext.com/Sublime%20Text%20Build%203143%20x64%20Setup.exe 注册信息:sublime t ... 
- FiddlerCoreAPI 使用简介
			原文:https://blog.csdn.net/zhang116868/article/details/49406599 大名鼎鼎的Fiddler大家都知道,或者用过,Fiddler 开放了他的Fi ... 
- Fix-Dell iDRAC 7 error: RAC0218: The maximum number of user sessions is reached
			Hi Everyone, We came across the following error while performing some preventative maintenance check ... 
- RmNet,CDC-ECM ,NDIS,RNDIS区别
			RmNet和CDC-ECM区别:更像是两种拨号方式的区别,RmNet获取公网IP,ECD-ECM获取局域网IP. 在高通平台上,rmnet driver 和标准的CDC-ECM是有区别的,rmnet ... 
- MySQL数据库InnoDB存储引擎
			MySQL数据库InnoDB存储引擎Log漫游 http://blog.163.com/zihuan_xuan/blog/static/1287942432012366293667/ 
