Java中子类的引用变量为什么不能指向父类的对象

起飞的火箭 2016-04-15 10:27:42
class A,B ; A继承B

B b=new A;//这在Java中能用,那A a=new B 就不行,这是为什么呢,从哪方面考虑呢?是与内存机制有关吗?请详细说明一下,谢谢
...全文
944 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
javaee3 2016-04-17
  • 打赏
  • 举报
回复
我的理解是:假如一个人的比喻子类,他父亲比喻父类,子类的引用指向父类,好比一个人生出他父亲,我的理解估计还是有错···
sinat_34690876 2016-04-17
  • 打赏
  • 举报
回复
举个栗子:子类有可能有很多父类不具备的方法…如果子类引用指向父类对象,这些子类特有的方法就不能调用了
起飞的火箭 2016-04-16
  • 打赏
  • 举报
回复
引用 1 楼 qq_20807967的回复:
父类引用指向子类对象肯定可以,那有子类引用指向父类引用的
我知道没有子类引用指向父类对象的,可原理是什么呢
飏飏一蝶 2016-04-16
  • 打赏
  • 举报
回复 6
A是B的子类 那么B的特性A就都具有, 反过来则不成立,A的特性B不一定都具有 所以,用泛指的指向更具体的是成立的 更具体的指向泛指则不成立 比如:

U extends Human
Human human = new U;
你是人类,但人类不都是你

50,530

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧