java创建子类对象时会自动创建父类对象吗

qq_25700511 2015-08-13 11:51:04
class fu
{
public int a;
public void fun()
{
System.out.println(a);
}
}
class zi extends fu
{
public static void main(String[] args)
{
zi s=new zi();
s.fun();
}
}
//输出的结果是0,父类的a有默认值,是不是说明父类的对象也存在。
...全文
800 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
孑吾 2016-09-22
  • 打赏
  • 举报
回复
父类就相当于是一个模板(接口),在需要的时候,可以照着他的样子去刻画(继承),但是刻画的时候添加的东西必须是他规定的范围以下的(比如抛出的异常,执行范围),那么最后看到的东西就是你现在刻画出来的,如果只是把模板拿过来 放到你现在的地方,没有任何修饰,里面内容是空的,那么看到的就是模板的内容了
jingwen_yang 2016-09-22
  • 打赏
  • 举报
回复
不会的,java中只有使用new的时候才会创建一个复杂对象,你在new一个子类的时候,系统会调用子类的构造器,而在子类的构造器中又会隐式调用父类默认构造器super()(除非你显式地在子类的constructor中指定父类的构造器)。以此类推,会接连调用父类的构造器,直到object,object没有父类。然后依次调用下来。 所以仅仅只是调用了父类的构造器,并没有创建父类的实例
0萌萌哒0 2015-08-14
  • 打赏
  • 举报
回复
不能说明,a的值来自于子类的对象。 由于子类继承了父类,因此子类中也会存在数据成员a(继承是这样体现的),而不是使用了父类定义的那个a。
rayw0ng 2015-08-13
  • 打赏
  • 举报
回复
a 是继承下来的,以经变成自己的了,不需要父对象存在。 但是换个角度看,子类对象可以转换成父类对象,相当于内部包含了父类对象吧。
forDream_ 2015-08-13
  • 打赏
  • 举报
回复
子类的构造函数,隐含会率先调用父类的构造函数,而父类的构造函数会率先调用父类的父类的构造函数。 以此类推,直到到Object的构造函数完成,再一层层的下来。 换而言之,表述应该是,所有出现父类的地方,都一定可以用子类代替,反之不然。 但是子类与父类并不是严格意义的包含关系。不能说,构造一个子类实例会创建父类对象,只能说需要用到父类的地方,都可以使用子类去替代它。
tianliuliuhappy 2015-08-13
  • 打赏
  • 举报
回复
子类对象继承了父类的属性和方法,如果子类中没有重写父类中的方法,则默认调用父类中的方法。
阿良良木月火 2015-08-13
  • 打赏
  • 举报
回复
不能,子类对象只能继承父类对象,没有父亲哪来的儿子

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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