「java父子类转换」java父类与子类的转化
本篇文章给大家谈谈java父子类转换,以及java父类与子类的转化对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
java 子类与父类转换
A extends B.
B b = new A();
A a = (A) b.
以上是没有问题的。其实在调用paint(Graphics oldg)时所传入的参数oldg本身就是Graphics2D对象。你可以在方法的开始加上System.out.println(oldg);就明白了。
JAVA 对象类型转换----子类转换父类
首先你要理解在Java里面子类与父类的关系。 子类继承父类,它可以继承到父类的非私有成员变量,以及方法。 也就是说这个子类的对象完全可以当作父类的对象来用,因为它拥有所有父类的方法,和成员 所以,在Java里面,父类的引用可以指向子类对象。 1.A a = b;因为b是B类的对象,B类继承自A类,所以A a = b;没有问题。等于 A a = new B(); 2.方法callA(A a)的参数形式就这个参数必须是A类的对象。当然,也可以A类子类的对象。因为A类子类的对象可以当A类的对象来用嘛。 3. callA(new B())实际上等同 A a = new B();callA(a); 第二问的 "如何调去的方法" 什么意思?
java中父类可不可以转为子类
父类对象无法转化子类对象。 子类对象有父类对象不具备的属性、初始化需要用到的参数、内存空间。所以父类对象无法转换为子类对象。 补充: Java中父类强制转换成子类的原则:父类型的引用指向的是哪个子类的实例,就能转换成哪个子类的引
java 子类转换成父类叫什么
是的,java
可以自动子类转换成父类(称为向上转换),子类独有的方法和属性会隐藏。但是还是存在的,例如
a
a
=
new
b();
b
b
=
(b)
a;
//强制转换
这时仍能使用而调用b的fun3();
java父子类转换问题
先别看父子,因为现实中总是任务父亲比儿子厉害。
而在类中, 儿子有可能比父亲厉害(比如S比F多了一个sonMethod方法),儿子能做的事情,父亲有可能不能做。
new S()的时候, 在内存中创建了一段代码。 这段代码有S的全部功能。
因为S从F继承,就是说 F的功能,S都有。 所以 F f = new S(),可以成立。
现在 在内存有一个变量,叫 f,他保存new S()的时候的内存中创建的那段代码的地址。
他有 F的全部功能(y因为他声明的类是 F)。
然后 进行 S s = (F)f; 我们知道, S的功能,F有可能有。 所以编译器允许你这样操作。
然后,就把 f 里保存地址,放到s里。 这样,s其实指向的就是new S()的时候在内存中创建的那段代码。
1,编译器检查通过
2, 没有变化,只是在内存中加了一个变量s,里面保存的和 f 同样的地址。 此时 f 是 f,是F类;
s 是 s ,是S类。 他们不搭杠。
3,里面保存的值 是一样的, 但是是2个对象。就是2个不同的口袋,装了相同的东西。
4., 因为f 是F, 要调用S的方法, F不一定有。 你可以理解为 F是个小口袋,S是套在F外面的大口袋。 S里的东西,F不一定有; F里的东西,一定也在S里。、
注意大小写。
java父子类转换的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java父类与子类的转化、java父子类转换的信息别忘了在本站进行查找喔。