new Class{}形式
先看下面代码
Test.java
public class Test {public static void main(String[] args) {A a=new A() {@Overridevoid ceshi() {System.out.println(ceshi);}};a.ceshi();new B() {@Overridepublic void ceshi() {System.out.println(ceshi);}}.ceshi();} }
A.java
public abstract class A {public String ceshi="as";abstract void ceshi(); }
B.java
public interface B {public String ceshi = "1234";public void ceshi(); }
运行输出:
as
1234
分析:是匿名内部类的写法,看着像实例化了抽象类和接口一样。
A a=new A(){}是定义了一个内部类继承了抽象类A,B b=new B(){}是定义了一个内部类实现了接口B
参考资料:
java代码:new 类名(){方法定义}应该如何理解?
原文:
new 类名(){方法定义} 这种写法是匿名内部类。1、匿名内部类就是没有名字的内部类。这是Java为了方便程序员编写程序,而设计的一个机制。因为有时候有的内部类只需要创建一个它的对象就可以了,以后再不会用到这个类,这时候使用匿名内部类就比较合适,而且也免去了给它取名字的烦恼。2、如果满足下面的一些条件,使用匿名内部类是比较合适的: ·只用到类的一个实例。 ·类在定义后马上用到。 ·类非常小(SUN推荐是在4行代码以下) ·给类命名并不会导致你的代码更容易被理解。 在使用匿名内部类时,要记住以下几个原则: ·匿名内部类不能有构造方法。 ·匿名内部类不能定义任何静态成员、方法和类。 ·匿名内部类不能是public,protected,private,static。 ·只能创建匿名内部类的一个实例。 ·一个匿名内部类一定是在new的后面,用其隐含实现一个接口或实现一个类。 ·因匿名内部类为局部内部类,所以局部内部类的所有限制都对其生效。 3、用匿名内部类创建多线程有两种方式,和创建一个线程是一样的。第①种继承Thread:new Thread(){public void run(){//do something }; }.start(); 第②种实现 Runnable接口:new Thread(new Runnable() {public void run() {//do something }; }) { }.start();
View Code
转载于:https://www.cnblogs.com/yanan7890/p/8782258.html
new Class{}形式相关推荐
- 【机器学习】【条件随机场CRF-3】条件随机场的参数化形式详解 + 画出对应的状态路径图 + 给出对应的矩阵表示...
1.条件随机场概念 CRF,Conditional Random Field,是给定一组输入随机变量条件下另一组输出随机变量的条件概率分布模式,其特点是假设输出随机变量构成马尔可夫随机场. 条件随机场 ...
- 条件随机场(CRF) - 2 - 定义和形式
版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/xueyingxue001/article/details/51498968 声明: 1,本篇为个人对 ...
- LeetCode简单题之数组形式的整数加法
题目 对于非负整数 X 而言,X 的数组形式是每位数字按从左到右的顺序形成的数组.例如,如果 X = 1231,那么其数组形式为 [1,2,3,1]. 给定非负整数 X 的数组形式 A,返回整数 X+ ...
- 哪种营销方法效果最差_今日头条广告投放形式分几种?头条品牌营销曝光效果哪种广告更好?...
一.今日头条广告形式分几种? 所以,广告主们也想借助今日头条投放广告.那么,今日头条怎么投放广告?今日头条平台有三种投放广告形式,开屏广告.信息流广告.详情页广告: 1.开屏广告 该广告位可以让你的产 ...
- python二维元组_python中读入二维csv格式的表格方法详解(以元组/列表形式表示)
如何去读取一个没有表头的二维csv文件(如下图所示)? 并以元组的形式表现数据: ((1.0, 0.0, 3.0, 180.0), (2.0, 0.0, 2.0, 180.0), (3.0, 0.0, ...
- Mapping Persistence Classes 笔记2---ValueType的形式和映射
2010年5月17日 简介: 前面的笔记着重讲解了实体类以及其class-mapping options,本章笔记将关注值类型的形式以及其OR映射选项. 值类型一般可分为两类:JDK类型和用户自定义类 ...
- 关于ES6中Promise的应用-顺序合并Promise,并将返回结果以数组的形式输出
1.Promise 基础知识梳理 创建一个Promise实例 const promise = new Promise(function(resolve, reject) {if (success){r ...
- Mybatis入门:2(xml形式的增删改查)
xml形式的增删改查 这里感觉没啥好讲的,照着代码自己敲一遍.认真再看看应该都懂的. Maven工程坐标 <?xml version="1.0" encoding=" ...
- c语言中的普通字符包括什么,【判断题】C语言中的字符常量通常有两种形式:普通字符和转义字符。...
[判断题]C语言中的字符常量通常有两种形式:普通字符和转义字符. 更多相关问题 ---Can you speak French?---Yes, but only____.A.a littleB.lit ...
- 读取本地照片 以流的形式进行显示
获取到前端传来的文件名称,到相应的文件中去读取,通过流的形式写到响应体中. /*** 显示图片 * getFeedBackPicture.do?picName=* @return*/@RequestM ...
最新文章
- 你哪来这么多事(五):职工信息插入
- NASA投资有远景技术,有望改变未来人类和机器人的勘探任务
- linux漏洞知乎_安装 Manjaro Linux 后必做的 6 件事 | Linux 中国
- 跨域资源共享CORS详解
- STL与Boost对比
- 软件工程概述思维导图总结(二)
- 宠物行业新锐宠胖胖APP联手麻花特开心正式出道
- Java入坑指南,学Java需要具备哪些前提条件?
- 关于module.exports和exports
- 当当网CEO李国庆微博上发飙,真牛!
- 个性化设置背景单机版五子棋(含可运行JS代码)
- U9 ERP 系统BOM物料清单批量导入导出并新增修改功能
- mtk 按键中断驱动
- 宏杉科技IPO终止审查,资本需对中国存储更多包容!
- [Android]解决小米手机神坑问题:Installation failed with message Failed to establish session
- 解决fork: retry: 资源暂时不可用
- 锐捷Ruijie路由器版本升级
- 基于 DevOps 实践的 .NET Core 给开发者带来了哪些好处?
- windows10@安装英语语言包异常_挂起中@设置搜索框的异常(总是搜不出任何结果)问题
- CCRC信息安全服务资质认证等级和范围