zoukankan      html  css  js  c++  java
  • instanceof和类型转换

    instanceof和类型转换

    instanceof,判断一个对象是什么类型,是否存在父子关系

    代码实现:

    public class Application {
        public static void main(String[] args) {
    
            //Object > String
            //Object > Person > Teacher
            //Object > Person > Student
            Object object = new Student();
    
            //System.out.println(X instanceof Y);//能不能编译通过!看是否为父子关系
    
            System.out.println(object instanceof Student); //true
            System.out.println(object instanceof Person); //true
            System.out.println(object instanceof Object); //true
            System.out.println(object instanceof Teacher);  //false
            System.out.println(object instanceof String); // false
    
            System.out.println("===========");
            Person person = new Student();
            System.out.println(person instanceof Student); //true
            System.out.println(person instanceof Person); //true
            System.out.println(person instanceof Object); //true
            System.out.println(person instanceof Teacher);  //false
            //System.out.println(person instanceof String); // 编译报错!
            System.out.println("===========");
            Student student = new Student();
            System.out.println(student instanceof Student); //true
            System.out.println(student instanceof Person); //true
            System.out.println(student instanceof Object); //true
            //System.out.println(student instanceof Teacher);  //编译报错
            //System.out.println(student instanceof String); // 编译报错
        }
    
    }
    

    类型转换

    抽象:编程思想!持续地学习!自会茅塞顿开!多实践,多测试大脑中的想法!实践出真知~

    /*
    1.父类引用指向子类的对象
    2.把子类转换为父类,向上转型;引用时无法使用子类的独特方法
    3.把父类转换为子类,向下转型:强制转换。会开辟新的空间
    4.方便方法的调用,减少重复的代码!简洁
    j
    封装、继承、多态!抽象类、接口
    
    抽象:编程思想!持续的学习,茅塞顿开!多实践,多测试大脑中的想法!实践出真知~
     */
    

    代码:

    public class Application {
        public static void main(String[] args) {
            //类型之间的转化:  基本类型转换  高低64 32 16 8
            //父     子
    
            //高             低
            Person obj = new Student();
    
            //student将这个对象转换为Student类型,我们就可以使用Student类型的方法了!
    
            Student student = (Student) obj;
            student.go();//本质上还是Person
            //又或者
            ((Student)obj).go();
    
            //高转低 自动转
            //子类转换为父类,可能丢失自己的本来的一些方法!
            Student student1 = new Student();
            student1.go();
            Person person = student1;
    
        }
    
  • 相关阅读:
    vim在插入模式下的粘贴
    关于外语学习的7个“美丽误会”(图)
    美国在线教育的启示:教育领域正在革命
    自动生成计算题
    字符串的截取,分割,替换
    将字符串转成byte,然后再转回来 日期相互转化字符串
    java编写的万年历代码
    小球弹砖块游戏(JAVA)
    随即输入一段字符串,统计出数字,大写字母。小写字母,空格
    邮箱验证信息
  • 原文地址:https://www.cnblogs.com/helloxiaolu/p/13294107.html
Copyright © 2011-2022 走看看