A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 张世威 于 2013-5-22 23:50 编辑

1、 创建子类对象时,对于父类是怎么处理的,是不是要先创建父类对象,
  不然的话从父类继承过来的成员放在哪儿?
2、或者说父类对象已经融合到子类对象中去了,那么继承来的成员是不是要做一个类标记?
  比如在每一个变量前面加上它本类的标志,以示区分,在向上转型的时候能找到对应的变量,如下所示:
public String A类.name ...
public String B类.name ...
public String C类.name ...
public String D类.name ...
*/


评分

参与人数 1技术分 +1 收起 理由
殇_心。 + 1

查看全部评分

6 个回复

倒序浏览
这应该没必要吧,首先,如果有必要,sun公司设计java时肯定加上了;其次,我想,这和我们生活中的道理是一样的,小猫继承猫爸爸的一些外貌特征,那难道我们在研究小猫时会说,哎,这只眼睛是他老爸的,这只耳朵是他老妈的?显然不会是吧,我们在继承时是不是会有一个super关键字,实际上是为了书写的简便,子类中要使用到在父类中已经有的一些成员给拿过来用,不用自己再写,当然简化的成员就已经是子类的了,不然,那只能对自己身体上的某一个零件说,这个零件是我妈的,这个这个是我爸的。。。

评分

参与人数 1技术分 +1 收起 理由
殇_心。 + 1

查看全部评分

回复 使用道具 举报
就是子类继承父类的时候,默认就是有父类里面的代码吧,要是子类又重新写了父类的代码,就是重写了!!!
回复 使用道具 举报
不用这么麻烦的,那子类的意义就不大了。编译到子类的时候会将其继承的超类也加载进来以便后续去使用超类中的方法。
回复 使用道具 举报
当两个类之间有继承关系时
第一次构造子类的实例时
实例化顺序是:首先执行父类静态的内容,父类静态的内容执行完毕后,接着去执行子类的静态的内容,当子类的静态内容执行完毕之后,再去看父类有没有非静态代码块,如果有就执行父类的非静态代码块,父类的非静态代码块执行完毕,接着执行父类的构造方法;父类的构造方法执行完毕之后,它接着去看子类有没有非静态代码块,如果有就执行子类的非静态代码块。子类的非静态代码块执行完毕再去执行子类的构造方法。总之一句话,静态代码块内容先执行,接着执行父类非静态代码块和构造方法,然后执行子类非静态代码块和构造方法。
实例化后只是创建了子类对象,没有父类对象生成

评分

参与人数 1技术分 +1 收起 理由
田磊阳 + 1

查看全部评分

回复 使用道具 举报
  1. class Fu{
  2.         Fu(){}
  3. }
  4. class Zi extends Fu{
  5.         Zi() {
  6.                 super(); //这里调用了父类的空参构造方法。这里Fu()这个方法就会进栈。将对象进行初始化。结束后父类构造方法就弹栈,完成初始化动作。
  7.         }
  8. }

  9. Zi zi = new Zi();
复制代码

评分

参与人数 1技术分 +1 收起 理由
田磊阳 + 1

查看全部评分

回复 使用道具 举报
1、 创建子类对象时,对于父类是怎么处理的,是不是要先创建父类对象,    答:不需要创建父类对象。如果父类是抽象类你怎么创建父类对象呢?
  不然的话从父类继承过来的成员放在哪儿?   答:继承过来的成员 子类没有的就让子类拥有,子类有的就复写父类的。
2、或者说父类对象已经融合到子类对象中去了,那么继承来的成员是不是要做一个类标记?     答:不存在什么标记。继承来就属于子类的属性了。

评分

参与人数 1技术分 +1 收起 理由
田磊阳 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马