java学习

子类是父类的类型,但父类不是子类的类型。

子类的实例可以声明为父类型,但父类的实例不能声明为子类型。

class Vehicle {}


public class Car extends Vehicle {

    public static void main(String args[]){

        Vehicle v1 = new Vehicle(); //父类型

        Vehicle v2 = new Car(); //子类的实例可以声明为父类型

        Car c1 = new Car();    // 子类型

        Car c2 = new Vehicle(); //这句会报错,父类型的实例不能声明为子类型


        //Car(子类)是Vehicle(父类)类型, Vehicle(父类)不是Car(子类)类型

        boolean result1 =  c1 instanceof Vehicle;    // true

        boolean result2 =  c1 instanceof Car;        // true

        boolean result3 =  v1 instanceof Vehicle;    // true

        boolean result4 =  v1 instanceof Car;          // false

        boolean result5 =  v2 instanceof Vehicle;    // true

        boolean result6 =  v2 instanceof Car;          // true


        System.out.println(result1);

        System.out.println(result2);

        System.out.println(result3);

        System.out.println(result4);

        System.out.println(result5);

        System.out.println(result6);

  }

}

从执行结果来看,虽然

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 在判断一个实例引用的类型时,使用的是实际类型,而不是声明的类型。在下面的代码中, Vehicle v2 = new...
    c667ec5a71d8阅读 1,547评论 0 1
  • 父类与子类 在Java术语中,如果C1类扩展自另一个类C2,我们称C2为父类,也称超类或基类,称C1为子类,也称次...
    Steven1997阅读 4,996评论 1 2
  • 每日要点 面向对象的四大支柱 抽象 - 定义一个类的过程就是一个抽象的过程(数据抽象、行为抽象),通过抽象我们可以...
    迷茫o阅读 3,003评论 0 0
  • 概述 java.io 包几乎包含了所有操作输入、输出需要的类。所有这些流类代表了输入源和输出目标。java.io ...
    Steven1997阅读 13,032评论 1 25
  • 朋友圈里住着一位高人,很超脱,对人性的的理解很透彻,每次闲暇的时候读一读他的文章总能豁然开朗…… 人性中总有欲望,...
    珊珊_812c阅读 3,056评论 0 1