首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Java强制转换为父类型并忽略子类型属性

是指将一个子类对象赋值给父类引用,并且只能访问父类中定义的属性和方法,而无法访问子类特有的属性和方法。

这种强制转换通常用于需要将子类对象作为父类对象处理的场景,例如在多态中,父类引用可以指向子类对象,但只能调用父类中定义的方法。在这种情况下,如果子类中有一些特有的属性或方法,通过强制转换为父类类型,可以屏蔽掉子类特有的内容,只使用父类的属性和方法。

强制转换的语法为:父类类型 变量名 = (父类类型) 子类对象;

下面是一个示例代码:

代码语言:txt
复制
class Parent {
    public void print() {
        System.out.println("This is the parent class.");
    }
}

class Child extends Parent {
    public void print() {
        System.out.println("This is the child class.");
    }
    
    public void childMethod() {
        System.out.println("This is a child-specific method.");
    }
}

public class Main {
    public static void main(String[] args) {
        Child child = new Child();
        child.print(); // 输出:This is the child class.
        child.childMethod(); // 输出:This is a child-specific method.
        
        Parent parent = (Parent) child;
        parent.print(); // 输出:This is the child class.(调用的是子类的方法,但输出的是父类的内容)
        // parent.childMethod(); // 编译错误,无法访问子类特有的方法
    }
}

在上述代码中,通过强制转换将子类对象child赋值给父类引用parent。虽然调用的是子类的方法,但输出的是父类的内容。同时,由于parent是父类类型,无法访问子类特有的方法childMethod。

腾讯云相关产品和产品介绍链接地址:

  • 云服务器(CVM):提供弹性计算能力,支持多种操作系统,适用于各类应用场景。产品介绍链接
  • 云数据库 MySQL 版(CDB):提供高可用、可扩展的 MySQL 数据库服务,适用于各类应用场景。产品介绍链接
  • 云原生容器服务(TKE):提供高度可扩展的容器化应用管理平台,支持容器部署、弹性伸缩等功能。产品介绍链接
  • 人工智能平台(AI Lab):提供丰富的人工智能开发工具和服务,包括图像识别、语音识别、自然语言处理等。产品介绍链接
  • 物联网开发平台(IoT Explorer):提供全面的物联网设备接入、数据管理和应用开发能力,支持海量设备连接和数据处理。产品介绍链接
  • 移动推送服务(信鸽):提供消息推送、用户分群、统计分析等功能,帮助开发者实现精准推送和用户管理。产品介绍链接
  • 对象存储(COS):提供安全、稳定、低成本的云端存储服务,适用于图片、音视频、文档等各类数据的存储和管理。产品介绍链接
  • 区块链服务(BCS):提供一站式区块链解决方案,包括区块链网络搭建、智能合约开发、链上数据存储等功能。产品介绍链接
  • 腾讯云元宇宙计划:致力于构建开放、共享的元宇宙生态,提供虚拟现实、增强现实等技术和应用支持。产品介绍链接
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

java把stringint类型_java把String类型换为int类型的方法

java把String类型换为int类型的方法 发布时间:2020-08-20 14:32:03 来源:亿速云 阅读:73 作者:小新 这篇文章将为大家详细讲解有关java把String类型换为int...在java中,实现String类型换为int类型的方法有:Integer.parseInt(String)方法、Integer.valueOf(String)方法。...本篇文章就给大家介绍java把String类型换为int类型的两种方法,让大家了解String类型如何可以转换为int类型,希望对你们有所帮助。...你会看到像这样的编译错误: 2、Integer.valueOf(String)方法 valueOf()同样是Integer包装类的一个方法,可以将String类型的值转换为int类型的值。...关于java把String类型换为int类型的方法就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

4.1K10
  • longstring java_java中Long类型换为String类型的两种方法及区别

    1、Long.ValueOf(“String”)返回Long包装类型数据 包装类型:Byte,Integer,Short,Long,Boolean,Character,Float,Double等。...2、Long.parseLong(“String”)返回long基本数据类型 基本数据类型:byte,int,short,long,boolean,char,float,double等。...注意事项: 1、字符串内不能包含除数字之外的字符,不然会报错,java.lang.NumberFormatException 2、字符串长度要限制,不然也会报错。...比如:String s =”1234567899876543210000″,超过19位,就会报错,java.lang.NumberFormatException....原因是Long类型的最大值位Long.MAX_VALUE = 9223372036854775807,大于错,最小值位Long.MIN_VALUE = -9223372036854775808,小于这个值也会报错

    2.1K30

    Java基础入门笔记05——面向对象,创建对象的内存分析,继承,封装,多态,object类,this&&super,方法重写,引用类型强制转换,instanceof,抽象类,内部类,接口,异常。[通

    ,能调用自己和类的方法 s2是Person类型,它指向子类Student,它不能调用子类独有的方法 子类可以用类的方法,类用子类的方法要进行强制转换 (此处需要强制将Person类转换为Student...64->32 高低(强制)————丢失精度 32->64 低高(自动) //引用类型的转换 //类是更高级的类型,子类是更低级的...->低(强制->高(自动)————丢失子类特有的方法 //高 <---------------- 低 自动转换...因为obj已经被自动转换为了Person类型,丢失了go方法 // Person类型是Student类的类,Person类并没有go()方法 // 所以如何让obj可以使用go方法?...若把子类对象转换为类,即向上转型,自动(会丢失子类独有方法) 若把类转化为子类,向下转型,强制 多态是为了方便方法的调用,减少重复的代码 ---- static关键字 修饰属性——静态属性 public

    98120

    Java核心-面向对象(中)

    2.1 概念1)向上转型(upcasting):把一个子类类型安全地变为类型,正常)2)向下转型(downcasting):把一个类型强制转型为子类类型转子,要强)2.2 instanceof...// 只有判断成功才会向下转型: Student s1 = (Student) p1; // 一定会成功 } // 演示向上转型(...args) { Person p=new Person(); // Person对象 Person s=new Student(); // Student对象,向上转型(...2)有类引用指向子类对象:Parent p=new Child(); (,向上转型,正常)3)有方法的重写。1.4 多态的好处及缺点1)好处为什么要使用"继承"和"多态性"?...2、类型转换相关2.1 类型转换的几种方式这里指的是引用数据类型。1)自动类型转换2)强制类型转换(强)2.2 强能解决的问题1)可以转换成真正的子类类型,从而调用子类独有功能。

    22612

    Java基础-数据类型

    学有余力的同学可以看看下面的分析,因为涉及一些计算机组成原理的内容,没学过计组的同学可以忽略。 简单分析上表:先看前4个整数类型和char,区别在于整数可以有正负,而char没有负数。...如64位(8字节)的 double类型换为32位(4字节)的 int类型时,自动类型转换无法进行,需要进行强制类型转换。 格式:(targetType)value。...表示的数据范围最大为127(不理解的回见 4、占位及数据范围部分),所以当 int强制换为 byte 类型时,值 128 就会导致溢出。...1.1 Object类 Object 是 Java 类库中的一个特殊类,也是所有类的类,任何 Java 对象都可以调用 Object 类的方法。...Java 允许把任何类型的对象赋给 Object 类型的变量。当一个类被定义后,如果没有指定继承的类,那么默认类就是 Object 类(向上和向下转型问题,后面会介绍)。

    24332

    万字长文总结,带你重温 Java 基础

    转换规则 从小达到自动,从大到小强制; 高精度向低精度转换,可能导致溢出; 低精度可以向高精度转换; 不同数据类型之间相互转换需要进行 强制转换; 命名规则及建议 变量命名只能使用 字母、数字、_...、实现类转接口) Hero hero = new Hero(); AdHero ad = new AdHero(); hero = ad; 向下转型(类转子类、接口实现类) Hero hero =...,类的同名属性或方法形式上不见了,但实际仍存在;即对于被隐藏的属性和方法,不会被覆盖,当类引用指向子类对象时,调用的隐藏属性或方法仍然是类的,而不会发生动态绑定; public class Test...Boolean 自动装箱:无需调用构造方法,通过 = 自动把 基本类型换为封装类 的过程叫做自动装箱; 自动拆箱 :无需调用对应方法,通过 = 自动将 封装类转换为基本类型 的过程叫做自动拆箱...parse 字符串日期 import java.text.SimpleDateFormat; import java.util.Date; /** * 日期字符串 */ public class

    82730

    Java 之数据类型

    自动类型转换 从低级类型向高级类型的转换为自动类型转换,Java编程人员无需进行任何操作,由计算机自动地转换数据的类型。...将基本数据类型换为其包装类还可以通过包装类的构造方法进行转换,例如将int型整数129换为Integer类型: Integer num=new Integer(129) 各包装类所具有的xxxValue...当引用了某个子类的变量对引用该子类的类的变量赋值时,会自动进行类型的转换;反之,类对子类进行赋值时则需要进行强制类型转换。..., 不能将C类型强制换为B类型 如果声明了一个类型的变量,但使其引用子类对象,在编译时,Java编译器是根据变量被显示声明的类型去编译,因此该变量的类型被看作类型,所以将其进行强制类型转换赋给引用了另一个子类对象的变量时...但在运行时将抛出java.lang.ClassCastException异常,因为这个变量实际引用的是子类对象,两个子类属于不同的类型,也没有继承关系,所以不能将一个子类强制换为另一个子类。

    96830

    Java进阶-集合(3)与泛型

    ,能保存任何类型的对象(因为Object类是所有类的类,即创建对象时都能向上转型,不用强) 1.2 问题(若无泛型) 1)集合对元素类型没有任何限制,如想创建一个只保存 Dog 对象的集合,但程序也可以轻易地将...System.out.println(books.get(id)); //获取值(Book对象整体,即为全部图书信息) //不需要将books.get(id)获取的值强制换为...System.out.println(bookList.get(i)); //get()方法得到索引对应的元素 //不需要将bookList.get(i)强制换为...属性声明:如private data_type1 property_name1; 一般用于类中的属性类型不确定的情况下 在实例化泛型类时,需要指明泛型类中的类型参数,赋予泛型类属性相应类型的值...表示它是各种泛型list的类,并不能把元素添加到其中 类型通配符上限: List<?

    26321

    Java的学习笔记(12)对象 七

    student1.go(); student1.run(); //向上转型, //也可以理解为将一个子类的对象转化为类的对象(隐形转型,自动的),小类大类 Person...子类类,子类拓展的方法会丢失。...// 向下转型,必须强 //类型之间的的转化 :转子,向下转换要强制转换,也就是类转为子类要强 Person obj = new Student(); // obj.go...() 会报错, obj是类Person对象实例,需要将obj转换为Student类型,才可以使用Student类型的方法 Student student = (Student) obj;...类引用指向子类的对象 2. 把子类转换为类,向上转型,直接; 3. 把类转换为子类,向下转型,强制转换; 4. 方便方法的调用,减少重复的代码,简洁 */ } }

    46230

    java学习与应用(4.6)--过滤器、监听器、JQuery、AJAX、JSON等

    JQuery的DOM操作 内容操作方法如:html获取标签体内容,text获取存文件内容,val获取属性value值。可以获取修改其内容。...CRUD操作:append元素将元素添加到内部,位于末尾(prepend方法添加到内部位于开头)。appendTo,prependTo方法将元素方法放到元素内部等。...方法如:writeValue传入File/Writer/OutputStream和obj,将objjson填充到指定的位置。writeValueAsString传入对象输出json字符串。...注解@JsonIgnore忽略属性,@JsonFormat(pattern)。在函数的成员变量前使用,对值进行处理。List集合转换后为数组的json,Map集合转换后为json,和对象一致。...json转换为java对象,使用readValue方法,传入json数据和Class类型,返回指定类型的对象。

    5.4K10

    JavaScript 笔记

    类型转换:     使用:Number()、parseInt() 和parseFloat() 做类型转换     Number()强一个数值(包含整数和浮点数)。     ...常用方法:             toString()     把数组转换为字符串,返回结果。             ...toString()     把逻辑值转换为字符串,返回结果。             valueOf()     返回 Boolean 对象的原始值。    ...先辈是某个节点的节点,或者节点的节点     查找访问节点       你可通过若干种方法来查找您希望操作的元素:         >通过使用 getElementById() 和 getElementsByTagName...和同级节点         节点树中的节点彼此之间都有等级关系。         和同级节点用于描述这种关系。

    1.8K60

    Java学习笔记, 不断更新

    float取整 获取数组最大值 函数迭代示例 HashMap方法 数组sort排序 list集合sort排序 倒序输出 捕捉异常 数组快速打印 两个数组间复制 Java引用类型 静态区、堆区、栈区、文字常量区...System.arraycopy(src, srcPos, dest, destPos, length); // 或 int[] b = (int[]) a.clone(); // 注意clone要使用强制转换...Java引用类型 Java 中的“引用”,类似于C 和 C++ 里的“指针”。...类、接口类型、数组类型、枚举类型、注解类型 基本数据类型:在被创建时,在栈上给其划分一块内存,将数值直接存储在栈上。...3 public File getParentFile() 返回此抽象路径名的路径名的抽象路径名,如果此路径名没有指定目录,则返回 null。

    1.1K40

    【c++】类型转换

    隐式类型转化:编译器在编译阶段自动进行,能,不能就编译失败 \2....向下转型安全问题: 如果类的指针(或引用)指向的是一个类对象,那么将其转换为子类的指针(或引用)是不安全,会存在越界的风险,因为转换后可能会访问子类的资源,而这些资源是类对象没有的。...如果类的指针(或引用)指向的是一个子类对象,那么将其转换为子类的指针(或引用)则是安全的,没有问题 使用C强制类型转换向下转型是不安全的,因为此时无论类的指针(或引用)指向的是类对象还是子类对象都会进行转换...使用dynamic_cast向下转型是安全的,如果类的指针(或引用)指向的是子类对象那么dynamic_cast会转换成功,但如果类的指针(或引用)指向的是类对象那么dynamic_cast会转换失败返回一个空指针...用于删除变量的const属性,可用进行修改 dynamic_cast:用于安全地将类的指针(引用)转换成子类的指针(引用)

    20620

    Java子类与类之间的对象转换(说明继承)

    在讲述向下转换之前,也许有些刚学java的朋友会有点不解为什么要使用向下转换,使用多态和动态绑定机制通过类型变量使用变量不就可以了么(比如我就曾对此感到疑惑)。...首先,类变量向子类转换必须通过显式强制类型转换,采取和向上转换相同的直接赋值方式是不行的,;并且,当把一个类型变量实例转换为类型变量时,必须确保该类变量是子类的一个实例,从继承链的角度来理解这些原因...也就是说,如果要把tiger转换为Tiger类型,必须保证tiger本身是Tiger的一个实例,在上例中,如果要把tiger转换成Lion类型,或是把Lion类型换为Tiger类型,都是行不通的,在运行时...    t = (Tiger)tiger; 如果要通过类调用子类变量的方法,那么要注意要将类型变量和强制转换用括号括起来: Number i = new Integer(3); System.out.println...原因是因为,Java编译器并没有聪明到能够在编译阶段就知道类型变量是哪一个子类的实例,所以,将animal转换为Lion类型的代码:(Lion)animal是能够编译通过的,即使事实上我们能看到animal

    3.7K20

    最新Java面试题 每一题都是经典

    Integer与int的区别 1.int是Java的基本数据类型之一,Integer是Java为int提供的包装类; 2.int的初始化值为0,而Integer的初始化值为null。...JAVA的自动拆箱装箱 自动装箱就是将基本数据类型自动的转换为对应的对象包装类型; 拆箱就是将对象包装类型换为基本数据类型。...什么是自动类型,什么是强制类型转换 自动类型  范围小的数据类型自动转为为范围大的数据类型 强制类型转换,范围大的数据类型需要强制换为范围小的数据类型 一维数组的三种创建方式 数据类型[] 数组名...面向对象把现实生活中的事物抽象成类,事物的行为抽象成方法,事物的信息封装成属性。对象是指具体的某个事物,对象通过类创建出来的,完成某项功能则通过调用对象的方法。...继承:子类继承类就拥有了类所有的成员变量和成员方法。 多态:类引用,指向子类对象。

    88510

    OC史上最实用的runtime总结,面试、工作你看我就足够了

    比如我们创建了一个对象 [[NSObject alloc]init],最终被转换为几万行代码,截取最关键的一句可以看到底层是通过runtime创建的对象 .cpp 文件 删除掉一些强制转换语句,可以看到调用方法本质就是发消息...,加了一个忽略属性方法是否被实现的判断,加上了对属性的归解档循环。...[type hasPrefix:@"NS"]) { // 将对象名转换为对象的类型,将新的对象字典模型(递归) Class class = NSClassFromString(type); value...,数组中是一个个模型对象,例如下面的数据我就可以通过books[0].name获取到C语言程序设计 JSON数据 我们既然能获取到属性类型,那就可以拦截到模型的那个数组属性,进而对数组中每个模型遍历字典模型...[type hasPrefix:@"NS"]) { // 将对象名转换为对象的类型,将新的对象字典模型(递归) Class class = NSClassFromString(type); value

    1.5K20

    C++中的类型转换

    ,就需要发生类型转化 C语言中的两种形式的类型转换: 隐式类型转化:编译器在编译阶段自动进行,能,不能就编译失败 显式类型转化:需要用户自己处理 示例: void Test () {.../引用转换为子类对象的指针或引用(动态转换) 向上转型:子类对象指针/引用->类指针/引用(不需要转换,赋值兼容规则) 向下转型:类对象指针/引用->子类指针/引用(用dynamic_cast转型是安全的...,每次使用强制类型转换前,程序员应该仔细考虑是否还有其他不同的方法达到同一目的,如果非强制类型转换不可,则应限制强制转换值的作用域,以减少发生错误的机会。...,非法访问等各种问题) const_cast,字面上理解就是去const属性 使用场景: 常量指针转换为非常量指针,并且仍然指向原来的对象 常量引用被转换为非常量引用,并且仍然指向原来的对象...总结: 去const属性用const_cast 基本类型转换用static_cast 多态类之间的类型转换用daynamic_cast 不同类型的指针类型转换用reinterpreter_cast

    1.9K20
    领券