码迷,mamicode.com
首页 > 其他好文 > 详细

引用变量的强制转换类型

时间:2016-05-13 01:22:32      阅读:352      评论:0      收藏:0      [点我收藏+]

标签:

  源代码:

public class Java9 {
    public static void main(String[] args) {
        Object hello="Hello";//Object类是所有类的父类,Object类和String类存在着继承的关系
        System.out.println("字符串是否是Object类的实例"+(hello instanceof Object));
        System.out.println("字符串是否是String类的实例"+(hello instanceof String));
        System.out.println("字符串是否是Math类的实例"+(hello instanceof Math));
    }
}

运行结果:

技术分享

  1.引用变量只能调用它编译时类型的引用方法,而不能调用它运行时类型的方法,即使它实际所引用的对象确实包含该方法,如果需要让这个引用变量调用它运行时类型的方法,则必须把它强制类型转换成运行时类型,强制类型转换需要借助于类型转换运算符;

  2.类型转换的规则:

①.基本类型之间的转换只能在数值类型(整数型,字符型,浮点型)之间转换,数值类型与布尔类型之间不能实现转换;

②.引用类型之间的转换只能在具有继承关系的两个类型之间进行转换,如果是两个没有任何继承关系的类型,则无法进行转换,否则会出现编译错误。如果试图把一个父类实例转换成子类类型,则这个对象必须实际上是子类实例才行(即编译时类型为父类类型,而运行是类型是子类类型),否则会编译出错;

理解:现在对于第二点的理解是:只有是类似于这样的: 父类 实例变量=new 子类();才可以即将这个实例变量强制转换为子类类型,一次来达到调用子类中方法的目的(没有转换前语法上是不能够实现调用的)

  3.instanceof运算符:instanceof运算符前一个操作数是一个引用类变量,后一个操作数通常是一个类(也可以是一个接口,可以把接口理解为一个特殊的类),它用于判断前面对象是否是后面的类或者其子类,实现类的实例;如果是,则返回true,否则返回false;上面源代码就是运行的例子。

引用变量的强制转换类型

标签:

原文地址:http://blog.csdn.net/hcy2319964421/article/details/51334931

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!