Java接口与实现类的转换
1、接口不能直接实例化对象
一开始学习接口就知道它与类的区别:接口不能用于实例化对象。但是可以在 Java 中,使用接口类型可用来声明一个变量,他们可以成为一个空指针,或是被绑定在一个以此接口实现的对象。
public interface TestInterface{}
TestInterface testInterface = new TestInterface();//这种肯定是不允许的
2、实现接口的子类可以通过创建对象赋值给接口
接口不能实例化,用接口的实现类可以实例化,将实现类的对象在内存中的地址指向接口,这个接口就可以使用了。
public interface Anim{}
public class Cat implements Anim {}
Anim anim= new Cat();//这种是可以的,声明变量被绑定在一个以此接口实现的对象
List Set Map都是接口,使用时先实现,List list = new ArrayList<>();
接口可以被声明出来,但决不能实例化,它可以作为子类的句柄指向子类的实例。
3、子类创建对象赋值给接口后,接口再赋值给子类需要强制转换
Anim anim= new Cat();
Cat cat=(Cat)anim;
4、接口在匿名内部类(假象的所谓内部类)实例化现象
btn.setOnClickListetener(new OnClickListener(){
@Override
public void onClick(View v) { }
});
这是匿名内部类的写法。new OnClickListener(){}其实并没有真正地实例化,new了一个实现接口的匿名
Java接口与实现类的转换相关推荐
- java中的正则表达式类---表情转换实例
Java中的正则表达式类 ________________________________________ public interface MatchResult 匹配操作的结果. 此接口包含用于确 ...
- java 接口初始化_Java类的初始化 | 学步园
类的初始化时机1.创建类的实例 2.访问类或接口的静态变量(static final常量除外,static final变量可以)3.调用类的静态方法 4.反射(Class.forName(packag ...
- Java——接口与实现类
目录 接口 实现接口 常用接口:java.util.Comparator Arrays.sort(Object[] arr, Comparator c) 常用接口:java.lang.Comparab ...
- Java接口、基类、抽象类详解(图解接口、继承和实现、基类和抽象类的区别等)——Java基础系列
文章目录 前言 总览(必看) 一.接口是"契约" 二.接口实例--Servlet接口 三.抽象标识符abstract和抽象类 四.基类作为"辅助" 求支持 前言 ...
- java 接口初始化_Java类和接口的初始化
类的初始化由执行类中静态代码块的初始化和类中声明的静态域的初始化两部分组成 接口的初始化由接口中声明的域(常量)的初始化组成 初始化的时机 类或接口T在以下任意情况发生之前会立即进行初始化:T是一个类 ...
- Java接口四个类四则运算_java 实现四则运算小程序
题目地址:http://www.cnblogs.com/HQL0301/p/7502315.html 1.需求分析: (1) 按照用户输入来控制题目生成个数以及随机数的值域: (2)生成题目与答案的T ...
- java接口匿名实现类的匿名对象和java类匿名子类的匿名对象相关提点
package com.atguigu09._inner;/*** @Description* @authr CodePerWorld Email:* @date*/ public class Out ...
- java接口请求工具类
Maven添加第三方类库 在这里我传的参数是Json格式的. 下面是java代码: /** * 招标接口输入参数,post请求 * * @param json ...
- Java接口四个类四则运算_用JAVA设计一个接口,声明有关算术运行的方法,并创建四个应用该接口的类,分别进行+-*/四则运算...
满意答案 接口: public interface Operator { public double operation(double a, double b); } 加法: public class ...
- java 接口编程_JAVA面向接口编程
一.什么是面向接口编程 要正确地使用Java语言进行面向对象的编程,从而提高程序的复用性,增加程序的可维护性.可扩展性,就必须是面向接口的编程.面向接口的编程就意味着:开发系统时,主体构架使用接口,接 ...
最新文章
- Visual Studio 2005 Service Pack 1 正式版发布
- python wasm_Python-pywasm-美味尝鲜
- iOS开发学习之MapKit - 获得在MapView(地图)中显示多个标记的区域(MKCoordinateRegion)...
- php下载文件代码 数据库,PHP备份数据库生成SQL文件并下载的函数代码
- 计算机组成原理双端口存储器实验,计算机组成原理双端口存储器实验报告.doc...
- weka的java环境配置_Linux(ubuntu)环境下配置weka
- java 记录用户_JavaWeb学习记录(六)——用户登录功能
- 整理下开发中常用的第三方库
- 语言 全排列 函数_【排列组合】错位全排列的简化计算公式
- linux thinkphp5 php7.0禁用eval
- 【线性代数】P1 行列式基本概念
- win7计算机二进制,二进制-系统爱好者
- Android神兵利器之Image Asset Studio
- 微米级颗粒清洗新技术
- 条码管理系统,助力企业打造轻量级数字化车间
- android小问题-------------android模拟器没有SD卡,SD卡状态为removed的解决方式
- SharePoint:协同办公好帮手
- 中科院、腾讯、深圳明源研发团队管理经验分享
- 如何让网页中所有链接都在新窗口打开
- 雷塞卡回零,演示消息泵的用法
热门文章
- 计算机房通气换气次数,各种换气次数汇总
- Windows10 电脑蓝屏方案对照表
- 使用vgg19进行微表情分类
- 2019数据安装勾选_【登陆、勾选、签名......,你在发票平台遇到的各类问题这里都有答案!】增值税发票综合服务平台常见问题整理(一)...
- MySQL下载安装教程及Navicat安装教程
- Navicat安装与破解
- 解二元一次方程组的c语言编程,如何利用C语言求二元一次方程的解
- ffmpeg bt709 to bt601
- android截屏与截长图截屏功能的实现
- 地下水数值模拟软件有哪些?GMS、Visual modflow、FEFLOW哪个更好用呢?