「java子类转父类」java子类转为父类
今天给各位分享java子类转父类的知识,其中也会对java子类转为父类进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
- 1、java为什么子类可以转换成父类
- 2、子类和父类的转换!谢谢!
- 3、java 子类与父类转换
- 4、java 子类转换成父类叫什么
- 5、java类型转换,子类转换父类需要强制吗
- 6、java中将子类对象转换为父类对象后调用的方法为什么是子类重写的方法
java为什么子类可以转换成父类
您好,提问者:
这是Java独有的多态特征,您说的没错。
如果子类转为父类,那么子类独有的方法和属性确实消失了。
他们是可以相互转换的,特殊情况下一个父类可以引用好几个子类。
子类和父类的转换!谢谢!
这是java多态性的表现,要深入理解的话得从内存方面去思考,创建的是子类对象,但是指针类型是父类的,它能指向的内存块是父类应能对应的内容。当你把A类得Area()方法删除时,a指向的内存块里没有Area方法,或者说它指向的这个对象虽然有这个方法,但是这个指针却是没法去访问该方法的, 所以出现无法访问的情况。
然后是a.name=3这个问题,这是由于直接访问成员变量的话 指针指向的任然是父类成员变量,这点记住就行,实际中一般都设getName()、setName()方法进行访问和设置,把name设为private,这样才符合面向对象封装特性,你可以试一下,a.getName()的结果肯定是4
另外父类转化为子类的问题,父类转化为子类不是一定可行的,父类要想转化为子类,其指向的内存块的内容一定要大于等于子类,(即指向对象一定要是子类或者子类的子类。。。)
比如:
A a = new C();
此时把a强制转换为子类是正确的
而A a = new A();
此时把a强制转换为子类则会出错
希望对你有帮助,有不明白的地方可以再问我
java 子类与父类转换
A extends B.
B b = new A();
A a = (A) b.
以上是没有问题的。其实在调用paint(Graphics oldg)时所传入的参数oldg本身就是Graphics2D对象。你可以在方法的开始加上System.out.println(oldg);就明白了。
java 子类转换成父类叫什么
是的,java
可以自动子类转换成父类(称为向上转换),子类独有的方法和属性会隐藏。但是还是存在的,例如
a
a
=
new
b();
b
b
=
(b)
a;
//强制转换
这时仍能使用而调用b的fun3();
java类型转换,子类转换父类需要强制吗
多态: 即 父类指向子类引用,
父类指向子类的时候不需要强转,因为子类本身就是父类类型的对象.
java中将子类对象转换为父类对象后调用的方法为什么是子类重写的方法
将子类转换为父类,只不过是将父类引用指向子类内存空间。重写后覆盖了父类的这个方法,父类调用这方法,当然是子类的啊。
关于java子类转父类和java子类转为父类的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。
发布于:2022-12-05,除非注明,否则均为
原创文章,转载请注明出处。