java父类和子类的问题。
1个回答
展开全部
都是B没错
先说父类跟子类的关系吧。如果说父类子类你不好理解,换种方法,类A就相当于“水果”。类B就相当于“苹果”。苹果一定是水果,但水果不一定是苹果,这个没错吧?
子类拥有父类的特性,变量以及方法,同时也可以改变方法内的过程,这一行为称作方法的“重载”
那我们回头看楼主的代码。首先在主函数里,你定义了一个A类型的a变量,好,这个a就相当于一个“水果”盒子,他并没有任何功能,但是他只能放“水果”进去。之后你new
了一个B,也就是新建了一个“苹果”并将其放到a“水果”的盒子中,这个并不违反规则,但是本质上来讲,a中的只是一个“苹果”,并不是其他的“水果”。
接下来,你将a强制转化成B类型。就相当于,无论a中放的是什么“水果”,都看成“苹果"来操作。如果a中的不是“苹果”或许会有点麻烦。但是a中的就是“苹果”,强制转化对于内容来说,没有什么影响。可以间接的理解为b=a
那么a和b的show所调用的函数自然就一样了~
这么讲够通俗么
先说父类跟子类的关系吧。如果说父类子类你不好理解,换种方法,类A就相当于“水果”。类B就相当于“苹果”。苹果一定是水果,但水果不一定是苹果,这个没错吧?
子类拥有父类的特性,变量以及方法,同时也可以改变方法内的过程,这一行为称作方法的“重载”
那我们回头看楼主的代码。首先在主函数里,你定义了一个A类型的a变量,好,这个a就相当于一个“水果”盒子,他并没有任何功能,但是他只能放“水果”进去。之后你new
了一个B,也就是新建了一个“苹果”并将其放到a“水果”的盒子中,这个并不违反规则,但是本质上来讲,a中的只是一个“苹果”,并不是其他的“水果”。
接下来,你将a强制转化成B类型。就相当于,无论a中放的是什么“水果”,都看成“苹果"来操作。如果a中的不是“苹果”或许会有点麻烦。但是a中的就是“苹果”,强制转化对于内容来说,没有什么影响。可以间接的理解为b=a
那么a和b的show所调用的函数自然就一样了~
这么讲够通俗么
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询