之前徒弟问了一个问题, 在Java中, 父类对象到底能不能转换成对应的子类对象? 到底能不能, 今天就来说说这个问题, 先看下面一段代码: 上面代码注释掉的两行是会运行错误的. 根据代码显示, 只有我们的父类对象本身就是用子类new出来的时候, 才可以在将来被强制转换为子类对象 ...
先看个例子: 上面定义了两个类,一个是类A,一个是由A派生而来的类B 再看主函数的代码: 这个不报错,也符合我们的逻辑,子类赋值给父类,就好比苹果 子类 是水果 父类 一样。 接下来才是重点: 这段代码在编译时期不会出错,但运行时期却报错了: 报错说:A类不能转换成B,为什么 其实 单纯的 父类是不能强转成子类的,这就好比:水果 父类 是苹果 子类 一样,不合逻辑。 但是下面这段代码编译和运行都不 ...
2018-11-03 23:55 0 4225 推荐指数:
之前徒弟问了一个问题, 在Java中, 父类对象到底能不能转换成对应的子类对象? 到底能不能, 今天就来说说这个问题, 先看下面一段代码: 上面代码注释掉的两行是会运行错误的. 根据代码显示, 只有我们的父类对象本身就是用子类new出来的时候, 才可以在将来被强制转换为子类对象 ...
目录 定义 要点: 子类转父类 父类转子类 定义 A是B的子类,A比B多几条属性 要点: A是B的子类,但List<A>不是List<B>的子类。所以想直接转换是不行的。 子类转父类 父类转子类 ...
(转至:https://www.cnblogs.com/ledphz/p/12373051.html) 定义 A是B的子类,A比B多几条属性 要点: A是B的子类,但List<A>不是List<B>的子类。所以想直接转换是不行的。 子类转父类 父类转子类 ...
父类转子类 父类强转子类的要求:父类必须是子类的实例,(换句话说就是需要强转的父类必须是子类构造出来的,它本身就是子类的实现) 原理:父类的实现是父类的实例,和子类没有关系,不能直接强转 父类对象是子类实现 父类对象可以强转为子类对象 父类对象是父类 ...
Java中父类强制转换成子类的原则:父类型的引用指向的是哪个子类的实例,就能转换成哪个子类的引用。 例: 打印结果:The boy were eating 原因:当Boy实例化后将引用地址返回传给person,这时person引用实际指向的是Boy,所以将person转换成Boy能成 ...
之前搞错了,变量没有“重写”一说,只有方法才能被“重写”。如果我们在子类中声明了一个和父类中一样的变量,那么实际的情况是,子类的内存堆中会有类型和名字都相同的两个变量。 现在考虑一种情况,如下所示,我们在子类中声明一个名字与父类中变量一样,但是类型不同的变量i(一个int,一个 ...
子类对象可以赋值给父类对象; 子类包含的成员方法和成员变量 要比 父类的多; 子类包含父类的成员方法和成员变量; 对于类对象的强制转换,也就是说,必须先将子类定义的对象赋给父类定义的对象之后才能用子类强制转换 赋给 新的子类对象 class AA{ AA ...
1.当自己的类指针指向自己类的对象时,无论调用的是虚函数还是实函数,其调用的都是自己的: 2.当指向父类对象的父类指针被强制转换成子类指针时候,子类指针调用函数时,只有非重写函数是自己的,虚函数是父类的; 3.当指向子类对象的子类指针被强制转换成父类指针的时候,也就是父类指针指向子类对象,此时 ...