java中子类对象什么作为父类对象来使用

那答案应该怎么填写啊?... 那答案应该怎么填写啊? 展开
 我来答
大菜篮子
2011-01-02 · TA获得超过762个赞
知道小有建树答主
回答量:83
采纳率:100%
帮助的人:129万
展开全部
这个问题问的有些模糊。猜测是不是想问:java中子类对象“为什么可以”作为父类对象来使用?
简单的回答:因为可以这样,所以可以这样。也就是说因为内存结构支持这样,所以才有了这种语法。
对象实际上就是方法区中的代码+堆中的变量空间,按照类装载规则,当装载子类时一并加载父类,这就意味着只要子类多的代码在内存,则父类的代码也会在内存。创建对象时,按照规则,将会在堆空间中开辟一个空间,这个空间就代表对象。包含的元素有哪些呢?一是类所包含的成员变量(非静态),二是类的超类所包含的成员变量,三是一个指向方法区中类代码的指针。
基于这种结构,不难理解通过父类引用子类的实质。不管通过什么引用,指向的还是那个内存区域,因为对象中包含父类的所有成员变量,所以可以按父类来“套”,通过父类指针访问的变量空间也是父类的变量(如果覆盖)。那么通过父类指针访问的方法呢,显然要通过对象中指向方法区的指针找方法,指向的是哪里?是子类。子类不包含方法怎么办,在找父类。
也就是说,如果发生覆盖,通过父类引用的空间是父类的,而方法是子类的。
简单回答了一下,没有仔细检查语句是否通顺。
wfeng007
2011-01-02
知道答主
回答量:13
采纳率:0%
帮助的人:0
展开全部
你说的是OO概念中的“多太”吧。
就是用父类声明的变量 引指 子类实例化的对象。

class B extends A{}
....
A a = new B();
?

这个是OO的基本概念。
概要的说就是能让同一个“名字”对应不同的“内容”。由于B继承A所以其定义必须在A上扩展,这样的多态即能提供变化,又能够在一定的规范中进行变化,不至于混乱不堪。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式