首页 > 其他分享 >13 instanceof 和类型转换

13 instanceof 和类型转换

时间:2023-02-09 22:12:24浏览次数:43  
标签:instanceof 类型转换 13 System Person Student println out

instanceof 和类型转换

package com.zhan.base05Oop.base05Oop04;

public class Test13 {


    // 编译看左,运行看右!!!!!!

    /*
    1.父类的引用指向子类: 即声明的是父类,实际上指向的是子类的一个对象(面向接口编程)

    2. 把子类转换为父类,向上转型:自动转换
       把父类转换为子类,向下转型:强制转换

    3. 方便方法的调用,减少重复的代码

    Java是一门抽象的语言
    封装,继承,多态,抽象类,接口
     */

    // instanceof  用来判断 对象和类是否又联系
    /*
    instance of
英 [ˈɪnstəns ɒv]   美 [ˈɪnstəns əv]
实例;某描述符的实例;间的关系;描述符的实例
     */

    public static void main(String[] args) {
        // 类型转换

        //  高            低
        // Person person=new Student();

        Student student1=new Student();
        Person person1=student1;      // 低转高,自动转换

        Person person2=new Person();
        Student student2=(Student) person2;   // 高转低,需要强制转换

        // person1.testS(); 编译错误(编译看左),将子类转换为父类后,可能执行不了原本的一些方法
        student2.testH();  // 将父类转换为子类后,没问题

    }
}

class Person{
    public void testH(){
        System.out.println("HHH");
    }
}

class Student extends Person{
    public void testS(){
        System.out.println("SSS");
    }
}

class Tescher extends Person{

}

/*
       Object object = new Student();
        Person person = new Student();
        Student student = new Student();

        // Object>Person>Student / Teacher
        // Object>String

        //System.out.println(x instanceof y); 能不能编译通过,来判断 x 和 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 Tescher); // false
        System.out.println(object instanceof String);  // false

        System.out.println("====================================================");
        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 Tescher);  // false      // 编译看左,运行看右!!!!!!
      // System.out.println(person instanceof String);  // 编译就已经报错,因为 Person 和 String 毫无联系
        System.out.println("=======================================================");

        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 Tescher); // 编译就已经报错,因为 Student 和 String 毫无联系
        //System.out.println(student instanceof String);  // 编译就已经报错,因为 Student 和 String 毫无联系
 */

标签:instanceof,类型转换,13,System,Person,Student,println,out
From: https://www.cnblogs.com/zhanjianhai/p/17107330.html

相关文章

  • 算法刷题 Day 34 | ● 1005.K次取反后最大化的数组和 ● 134. 加油站 ● 135. 分发糖
    1005.K次取反后最大化的数组和本题简单一些,估计大家不用想着贪心,用自己直觉也会有思路。https://programmercarl.com/1005.K%E6%AC%A1%E5%8F%96%E5%8F%8D%E5%90%8E%......
  • CF1389E Calendar Ambiguity 题解
    可能更好的阅读体验题面传送门toluogu题目大意假设一年有\(m\)月,每个月有\(d\)天,每周有\(w\)天。保证一年的第一天一定是周一。求\((x,y)\),满足\(x<y\)并且......
  • typeof和instanceof的区别
    1.typeof用于判断数据类型,返回值有number、string、boolean、function、undefined、object六个。在这里我们可以看到typeof判断null、array、object以及函数的实例(new+......
  • Java基础知识点(键盘录入、算术运算符、类型转换)
    一:键盘录入Java帮我们写好一个类叫Scanner,这个类这个类就可以接收键盘输入的内容步骤一:导包——Scanner这个类在哪(导包必须出现在类定义的上面)importjava.util.Scanner;步......
  • 713~714 登录案例_BeanUtils基本使用 AND 2登录案例_BeanUtils介绍
    8.login.html中form表单的action路径的写法虚拟目录+Servlet的资源路径9.BeanUtils工具类,简化数据封装用于封装JavaBean的1.JavaBean:标准的Java类1......
  • [dp 记录] CF1342F
    trick:dp数组定义域与值域的互换。基本复读魏老师题解。题意:将\(n\)数合并为\(m\)集合,每个集合取出一个代表元,使得(代表元下标,集合和)构成偏序关系。最大化\(m\)并......
  • C语言中的数据类型转换
    自动类型转换,即参与运算的各个数据都转换成数据较长的数据类型,然后计算,结果的类型就是数据长度较长的数据类型。本质上就是将较低类型按照“就高不就低”或“就长不就短”的......
  • Mybatis类型转换介绍
    1.2建立TypeHandler我们知道java有java的数据类型,数据库有数据库的数据类型,那么我们在往数据库中插入数据的时候是如何把java类型当做数据库类型插入数据库,在从数据库读取......
  • AP2813双路降压恒流驱动器 一切一 MOS切换 储能电源指示灯
    产品描述AP2813是一款双路降压恒流驱动器,高效率、外围简单、内置功率管,适用于5-80V输入的高精度降压LED恒流驱动芯片。内置功率管输出功率可达12W,电流1.2A。AP2......
  • http请求 413错误
    1、错误原因程序请求返回413错误的原因是因为nginx配置文件中client_max_body_size,client_max_body_size设置的太小(如果不设置的话,默认为1m)2、解决方法 在Nginx配置文......