interface I {

int element = 10;

}

class A implements I

{

int element = 2;

public static void main (String[] args) throws java.lang.Exception

{

A a = new A();

System.out.println(a.element);

I i = (I)a;

System.out.println(a.element + " " + i.element);

}

}

输出:

2

2 10

即使在将类型A的对象强制转换为I之后,I中的element的值也不会改变.

如果我是一个类并且A扩展了I,那么我可以更改A中元素的值并将其强制转换为I,以便i.element具有修改后的值(在这种情况下,A没有元素成员)

那么在这种情况下是否存在强制转换的概念? (将类对象强制转换为接口类型)

解决方法:

Even after I cast object of type A to I the value of element in I doesn’t change.

I i = (I)a;

该行显示了指向类型I的实例.这意味着,您正在访问类型I中的变量,并告诉您执行类a中的方法.

多态性严格用于方法.变量没有多态性.

这是示例:

public interface TestInterface {

int testvarInterface = 0;

}

public class TestParent {

int testvarFromParent = 0;

}

public class TestClass extends TestParent implements TestInterface {

public static void main(String[] args) {

TestClass s = new TestClass();

System.out.println(s.testvarInterface);

TestInterface in = (TestInterface) s;

in.testvarInterface = 15; // ERROR: The final field

// TestInterface.testvar

// cannot be

// assigned

System.out.println(s.testvarFromParent); // Points to LHS

TestParent parent = (TestParent) s;

parent.testvarFromParent = 20;

System.out.println(parent.testvarFromParent);

}

}

毕竟,您必须记住变量指向LHS(天真,还是静止),在接口情况下,由于它是public和static final,因此您不能对其进行修改.

标签:casting,interface,java

来源: https://codeday.me/bug/20191027/1948084.html

java 接口强制转换_java-使用强制类型转换接口类型相关推荐

  1. java继承对象转换_java中类与对象的继承重写,存储以及自动转换和强制转换。...

    对象的继承 继承关键字:extends 继承的格式: public class 类名 extends 父类名{ } 注:一个类只能继承一个父类.子类继承父类的全部内容. 访问修饰符同类中 同包中 不同 ...

  2. java 强制转换string_toString() 和 强制类型转换 (String)

    转自https://www.cnblogs.com/yuxiaoqi/p/3562161.html 简述 在Java中,往往需要把一个类型的变量转换成String 类型.作为菜鸟,有时候我会使用(St ...

  3. python怎么强制转换_python怎么强制转换类型

    python内提供了几种称为强制类型转换的函数,可以将一个变量的类型强制转换为另一种类型.比如,整型->浮点型,列表->元组. 我们在之前已经学习了很多种数据类型 · 整型 int · 浮 ...

  4. java 接口的泛型方法_Java泛型/泛型方法/通配符/泛型接口/泛型泛型擦出

    从JDK1.5以后引入了三大常用新特性:泛型.枚举(enum).注解(Annotation).其中JDK1.5中泛型是一件非常重要的实现技术,它可以帮助我们解决程序的参数转换问题.本文为大家详细介绍一 ...

  5. java比较时间戳大小_JAVA中两个String类型的时间戳怎么样比较大小?

    1.从数据库里面获得的时间戳是String类型的,要与当前时间比较,判断登陆是否过期 生成一long类型的当前时间,把String类型强制转换成long类型报错,代码如下: long currentT ...

  6. java integer long 转换_java - 将Integer转换为Long

    java - 将Integer转换为Long 我需要使用反射来获取字段的值. 碰巧我并不总是确定该字段的数据类型是什么. 为此,为了避免一些代码重复,我创建了以下方法: @SuppressWarnin ...

  7. java int 64 转换_Java中数据类型及其之间的转换

    Java中数据类型及其之间的转换 Java中数据类型及其之间的转换 基本的数据类型 基本类型有以下四种: 1)int长度数据类型有:byte(8bits).short(16bits).int(32bi ...

  8. java 接口 安全加密_Java中的安全加密

    java 接口 安全加密 上一次我写关于密码学的文章时 ,我概述了Apache Shiro加密API,并展示了如何使用其两个对称密码. 我还写道:"您不需要在应用程序中加密和解密敏感数据的更 ...

  9. java时间格式转换_Java时间日期格式转换

    突然忘记了时间格式怎么转换,特此做个记录 Java时间格式转换大全 import java.text.*; import java.util.Calendar; public class VeDate ...

最新文章

  1. Gmapping 乱七八糟
  2. R缺失值识别、过滤、填充(中位数、KNN、随机森林)
  3. Jzoj4458 密钥破解——Pollard-rho
  4. Android使用Intent实现拨打电话的动作
  5. 有没有想过,你眼中的SQL进阶,别人看来连入门都不是?
  6. Kubernetes资源配额
  7. 如何用树莓派搭建一台永久运行的个人服务器?
  8. JAVA 实现《JAVA打砖块》游戏
  9. 行业认证标准:EN 50128铁路应用-通信、信号和处理系统
  10. 智慧城市每年商机超2万亿美元;中德嘉宾共话智慧城市建设 | 智慧城市周报
  11. ----已搬运----【总章程】SSRF完全学习,,什么都有,,,原理,绕过,攻击
  12. 卡--配合--读卡器使用 磁卡 CPU卡 IC卡、ID卡、M1卡、射频卡区别 我在项目中使用到的S50卡(M1卡的一种)S50(Mifare 1K)卡简介及存储控制原理
  13. 包和 jar 文件的创建
  14. HCJ2:页面两栏式或三栏式布局
  15. 如何理解所谓的压力与红利
  16. python制作词典软件_Python爬虫之二:自制简易词典
  17. 软件工程学习之小学四则混合运算出题软件 Version 1.00 设计思路及感想
  18. 文末送书!看懂这本书,程序员可以自信地说“我要打十个”!
  19. 一篇文章理解JS中同步任务和异步任务以及宏任务与微任务的原理和执行机制
  20. proe服务器高速缓存位置,Proe优化设置教程,教你proe提高显示速度及质量的设置方法...

热门文章

  1. jBPM用户指南 第九章 流程建模(转载)
  2. SqlCommand 添加参数-与DataAdapter更新
  3. docker+Locust+Prometheus+Grafana实现性能监控平台
  4. iPhone13,网络信号不好,解决方法(亲测有效)
  5. 检测浏览器是否支持WMP(Windows Media Player)
  6. 4月21号软件更新资讯合集.....
  7. c语言%.6s和%6s的差别,6s和6的区别有哪些 各方面详细介绍【图文】
  8. 详解flex布局(flexbox)完整指南
  9. 2.1.SVM线性分类器
  10. 饥荒私人服务器设定修改,饥荒服务器-自定义世界设置