java简单匿名内部类练习
2016-05-23 15:29
375 查看
匿名内部类就是没有名字的内部类
匿名内部类的三种情况:
一、继承式的匿名内部类
二、接口式的匿名内部类
三、参数式的匿名内部类
在使用匿名内部类时,要记住以下几个原则:
(1)不能有购置方法,只能有一个实力。
(2)不能定义在任何静态成员、静态方法。
(3)不能是public.protected.private.static.
(4)一定是在new的后面,用其隐含实现一个接口或一个类。
(5)匿名内部类为局部的,所以局部内部类的所有限制都对其有效。
内部类的作用:
每个内部类都能独立地承受来自一个(接口的)实现。所以无论外部类是否已经继承了某个(接口的)实现,
对于内部类都没有影响。
如果没有内部类提供的可以继承多个具体的或抽象的类的能力,一些设计与编程问题就很难解决。从这个教的看,内部类的使得多继承的解决方案变得完整。接口解决了部分问题,而内部类有效地实现了“多重继承”。
匿名内部类的三种情况:
一、继承式的匿名内部类
二、接口式的匿名内部类
三、参数式的匿名内部类
在使用匿名内部类时,要记住以下几个原则:
(1)不能有购置方法,只能有一个实力。
(2)不能定义在任何静态成员、静态方法。
(3)不能是public.protected.private.static.
(4)一定是在new的后面,用其隐含实现一个接口或一个类。
(5)匿名内部类为局部的,所以局部内部类的所有限制都对其有效。
内部类的作用:
每个内部类都能独立地承受来自一个(接口的)实现。所以无论外部类是否已经继承了某个(接口的)实现,
对于内部类都没有影响。
如果没有内部类提供的可以继承多个具体的或抽象的类的能力,一些设计与编程问题就很难解决。从这个教的看,内部类的使得多继承的解决方案变得完整。接口解决了部分问题,而内部类有效地实现了“多重继承”。
public class test_12_3 { public static void main(String[] args) { OuterClass outer = new OuterClass(); outer.print_3();//接口式的匿名内部类 outer.print_4(new Child() //参数式匿名内部类 { public void desc() { System.out.print("参数式匿名内部类"); } }); } } class OuterClass { public void print_3() { /*class InnerClass_3 implements Child//继承式的匿名内部类 { }*/ //也是Android重要写法 Child c = new Child()//直接调用内部类(new的是匿名内部类) { public void desc()//匿名内部类对象 { System.out.println("匿名内部类"); } }; c.desc();// 内部实现 } public void print_4(Child c) { c.desc(); } } interface Child //匿名内部类练习 { public void desc(); }
相关文章推荐
- RxJava操作符 debounce 和 distinctUntilChanged
- java中文乱码解决之道(4):java编码转换过程
- Java面向对象编程概述
- Spring使用Cache、整合Ehcache
- java中文乱码解决之道(3):编码详情:伟大的创想—Unicode编码
- 第一个Java应用
- java中文乱码解决之道(2):字符编码详解:基础知识 + ASCII + GB**
- java中文乱码解决之道(1):认识字符集
- Java 数字转换为汉语中人民币的大写
- java中文乱码解决之道(7):JSP页面编码过程
- 【Spring】【笔记】《Spring In Action》第3章 简化XML配置
- Spring Boot下配置MyBatis多数据源
- JAVA多线程(三)生产者消费者模式及实现方法
- mac jdk 1.6下载地址
- ArrayList源码分析(JDK1.8)
- Java导出jar包(并用bat命令执行)
- eclipse not found servlet.api
- Spring 父子容器
- Jeeplus智能快速开发平台首页、文档和下载 - spring MVC mybatis ssm 框架 - 开源中国社区
- Eclipse配置Git