本问题已经有最佳答案,请猛点这里访问。
假设B extends A和我们有一个声明A a=new B();超级类变量引用子类对象的用途是什么?对象A((只有子类方法和变量)或(从子类和父类中)可以访问哪些字段和方法?
谢谢
谷歌java inheritance polymorphism。你应该能找到问题的答案。
看这里stackoverflow.com/questions/10177523/…
原因是抽象。你不需要知道关于这个物体的每一个微小细节。例如,假设你在开车。在大多数情况下,右边的踏板会让你跑得更快,左边的踏板会让你减速,前面的大圆球会让你操控汽车。这种情况的发生对驾驶员(也就是说,用户)来说并不重要,但是为了让汽车真正移动,这些细节的正确工作是非常重要的。
是的,最重要的是,当您在B类中使用任何静态方法时,您需要使用该类的对象来访问属性,或者您的超级类必须用静态说明符定义
所以这主要是为了实现:Polymorphism和Abstraction。
主要的原则是客户端针对更高的标签接口进行编码,而不担心低级别的实现。
这使得在不更改客户机的情况下可以灵活地更改实现。而且客户机还具有尝试多种实现的灵活性。
在您的示例中,可以从a访问的成员是由a类定义的成员。
使用超级类引用类型的用途是不必担心实现类(或特定类),比如List a = new ArrayList();。
在这种情况下,只有超级类公开的方法才是可访问的。
嗨,简单来说,我们可以说,所有的B都是A,而不是所有的A都是B。这就是整个继承的工作原理。它提供了所需的弃权。
你没有回答他的问题,但解释了什么是抽象。
我的第一行回答了他的问题!看!!
那么what are the fields and methods accessible by the object a呢?你在哪里回答的?我知道你的回答太笼统了。