Java对象类型的转换+instanceOf判断对象类型

这篇具有很好参考价值的文章主要介绍了Java对象类型的转换+instanceOf判断对象类型。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1.对象类型的转换

将子类的实例对象定义为父类类型,这种称为向上转型;将父类的实例对象定义为子类类型,这种称为向下转型,向下转型必须使用显示转换,否则编译器会报错。

1.1 向上转型

package classExtends;

class Quadrangle {      //定义四边形类
    public static void draw(Quadrangle q) {
        System.out.println("四边形类为父类中的draw()方法");
    }
}

public class Paralllelogram extends Quadrangle {
    public static void main(String[] args) {
        Paralllelogram p = new Paralllelogram();    
        draw(p);        //对象类型向上转型,调用父类的方法
    }
}

输出:
        四边形类为父类中的draw()方法

1.2 向下转型

package classExtends;

class Quadrangle {      //定义四边形类
    public static void draw(Quadrangle q) {
        System.out.println("四边形类为父类中的draw()方法");
    }
}

public class Paralllelogram extends Quadrangle {
    public static void main(String[] args) {
        draw(new Paralllelogram());
        Quadrangle q = new Paralllelogram();    //将Paralllelogram类的实例对象定义为Quadrangle类型,这是对象类型向上转型
//        Paralllelogram p=q;       //将父类对象直接向下转型赋值给子类对象,这种是错误的,会报错❌
        Paralllelogram p = (Paralllelogram) q;  //向下转型时要强制显示转换为子类类型,这种写法✅
    }
}

输出:
        四边形类为父类中的draw()方法

 

2.instanceof判断对象类型/类是否实现了某个接口

        instanceof操作符,可以用来判断是否一个类实现了某个接口,也可以用来判断一个实例对象是否属于一个类,返回值为布尔值

        instanceof是Java语言的关键字,在Java语言中,关键字都是小写。文章来源地址https://www.toymoban.com/news/detail-721334.html

2.1 语法:

        obj instanceof ExampleClass

package classExtends;

class Quadrangle {      //定义四边形类
    public static void draw(Quadrangle q) {
        System.out.println("四边形类为父类中的draw()方法");
    }
}

class Square extends Quadrangle {

}

class Anything {

}

public class Paralllelogram extends Quadrangle {
    public static void main(String[] args) {
        Quadrangle q = new Quadrangle();
        //判断父类对象q是否是子类Paralllelogram的一个实例
        if (!(q instanceof Paralllelogram)) {
            Paralllelogram p = (Paralllelogram) q;   //向下转型操作
            System.out.println("父类对象q是子类Paralllelogram的一个实例");
        }
        //判断父类对象q是否是子类Square的一个实例
        if (q instanceof Square) {
            Square s = (Square) q;      //向下转型操作
            System.out.println("父类对象是子类Square的一个实例");
        }
    }
}

//输出:
//        四边形类为父类中的draw()方法

到了这里,关于Java对象类型的转换+instanceOf判断对象类型的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • MyBatis实现 Java 对象和数据库中日期类型之间的转换(超详细)

    数据库存储的时间字段的类型是datetime Java实体类的时间字段类型是Date 需求:响应前端的时间字段格式为”yyyy-MM-dd HH:mm:ss“ 1、定义resultMap 定义 Java 对象和数据库表字段的对应关系,在 mapper.xml 文件中使用 #{属性名,jdbcType=数据库字段类型} 来进行参数传递和结果集映射,例如

    2024年02月15日
    浏览(35)
  • js常用判断数据类型方法以及优缺点 以及 instanceof 原理实现

    使用typeof操作符可以 判断一个值的数据类型 。它返回一个表示数据类型的字符串。 优点:typeof 操作符是一种简单、快速的方式来 判断基本数据类型 。它返回的结果是一个字符串,可以直接用于条件判断。 缺点: 对于引用类型(除了函数)的判断结果都是\\\'object\\\' ,无法细

    2024年02月12日
    浏览(31)
  • Java面向对象——多态、Object类、instanceof关键字以及final关键字

    总之,多态是面向对象编程中一个非常重要的概念,通过它可以实现统一的接口来操作不同的对象,提高代码的可读性和可维护性。在实际编程中,多态性的使用可以使代码更加灵活和扩展性更强。方法重写是实现多态的基础。 重写如下所示 关于hashCode方法的重写: 重写t

    2024年02月12日
    浏览(47)
  • instanceof、对象类型转化、static关键字

    instanceof是判断一个对象是否与一个类有关系的   先看引用类型,再看实际类型 * 例子:obj instanceof A 先看obj的类型是否与A有关联,无关联则报错,有关联则判断obj的实际类型 因为obj的实际类型是son,所以String类与他无关,所以返回false 对象类型转换: 发生在父子之间

    2024年02月02日
    浏览(34)
  • js判断类型:typeof Object.prototype.toString instanceof constructor有什么区别?一文讲清楚

    相信很多小伙伴在使用js的过程中,经常会需要对js的数据类型进行判断,而js中可以对数据类型进行判断的方法有很多种,最常见的有typeof、Object.prototype.toString、instanceof、constructor这四种,那么他们有什么区别呢? 目录 js数据类型 typeof 为啥typeof会将null判断为object Object.pr

    2024年02月11日
    浏览(24)
  • (04)基础强化:接口,类型转换cast/convert,异常处理,传参params/ref/out,判断同一对象

         1、New的截断是指什么?              new除了新开空间创建初始化对象外,还有一个 隐藏 父类同名方法的作用。                  当子类想要隐藏父类同名的方法时用new,用了new后父类同名方法将到此为止,后面         继承的子类,将再也继承不到父类的同

    2024年02月01日
    浏览(30)
  • 【Java基础教程】(十四)面向对象篇 · 第八讲:多态性详解——向上及向下转型、关键字 final与 instanceof的作用~

    掌握final 的主要作用及使用; 掌握对象多态性的概念以及对象转型的操作; 掌握instanceof 的主要作用及使用; 在Java 中 final称为终结器,在Java 里面可以使用 final定义类、方法和属性,用于表示不可变性 。 final 类:当一个类被声明为 final 时,意味着该类不能被

    2024年02月16日
    浏览(33)
  • java判断文件类型

    Java可以使用文件后缀名或文件头来判断文件类型。 使用文件后缀名判断: 首先使用File类获取文件名,例如:File file = new File(\\\"example.txt\\\"); 然后使用getName()方法获取文件名,例如:String fileName = file.getName(); 接着使用substring()方法截取文件后缀名,例如:String fileType = fileName.s

    2024年02月16日
    浏览(35)
  • 【Java】如何判断一个空对象

    在Java编程中,我们有时需要判断一个对象是否为空。一个对象可能为空,如果它是null或者如果它是一个实例但其内部状态表示它应当是空的。以下是一些方法来检查对象是否为空。 使用==运算符: 最直接的方法是使用==运算符来检查对象是否为null。 使用Optional类型 从Java

    2024年02月04日
    浏览(31)
  • 如何判断一个java对象还活着

    引用计数器的算法是这样的:在对象中添加一个引用计数器,每当有一个地方引用它时,计数器值就加一;当引用失效时,计数器值就减一;任何时刻计数器为零的对象就是不可能再被使用的。 缺点:循环引用的场景无法释放 目前 Java 虚拟机的主流垃圾回收器采取的是可达

    2024年02月10日
    浏览(27)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包