父类对象是否可以强制转换成子类的对象为什么

父类对象是否可以强制转换成子类的对象为什么,第1张

父类对象不能强制转化成子类对象,java中用类来实例化对象主要是因为类中含有这类实例中的共有属性,而类中集合了这些属性;父类与子类,子类是父类的扩展,子类比父类更具体,意思也就是说,子类比父类所拥有的方法属性更多,更具体,但子类中又包含有父类中的全部属性方法,所以当子类对象强制转化为父类对象是时允许的,因为子类对象中含有与父类对象相同的属性,但是当父类对象强制转化成子类对象时就不可能了。明白了吗??

可以拿子类的对象给父类的对象赋值。

因为子类对象在性质上也是一个父类对象。就像卡车也是一种汽车。

可以拿卡车来给汽车赋值,因为卡车包含普通汽车所有的属性。

但是不可以拿汽车对象给卡车赋值,因为卡车对象中(卡车是派生类)可能包含汽车对象中不包括的属性,赋值无法进行。

你这么去理解,用你上面第2点说明,如果父类Parent中有个炒菜的方法,里边是parent炒菜的过程和需要的材料,子类Son重写了父类中的炒菜方法,但是子类炒菜方法与parent完全不同(儿子喜欢另一种炒菜方法),那么在程序中调用p炒菜方法时,就会调用子类的炒菜方法。

所以多态实现的是:通过父类或接口调用子类或实现类里的重写方法或者实现方法,除非继承的子类没有重写父类任何方法,否则调用的都是子类里边重写的方法

class A {

}

class B extends A{说明:B类继承A类,

A

是父类,B

是子类。

A

a

=

new

B();

等号左边

就是父类的引用a,

右边就是子类B对象,

这就是把父类的引用指向子类对象。

以上就是关于父类对象是否可以强制转换成子类的对象为什么全部的内容,包括:父类对象是否可以强制转换成子类的对象为什么、c++中不能以父类来接收子类的对象吗、java中关于父类引用指向子类对象,多态性的问题~虚心求教等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9796643.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-02
下一篇 2023-05-02

发表评论

登录后才能评论

评论列表(0条)

保存