JAVA继承为什么要先创建父类对象再创建子类对象

publicclassJavaTeacher{Stringschool;Stringname;publicJavaTeacher(Stringschool,Stringn... public class JavaTeacher {
String school;
String name;

public JavaTeacher(String school, String name) {
super();
this.school = school;
this.name = name;
}
public void introduction()
{
System.out.println("大家好!我是"+school+"的"+name);
}
public void giveLession()
{
System.out.println("知识点讲解");
System.out.println("总结提问");
}
}

public class JavaDBTeacher extends JavaTeacher {
public JavaDBTeacher(String school, String name) {
super(school, name);
// TODO Auto-generated constructor stub
}

public void giveLession() {
System.out.println("打开Oracle");
super.giveLession();
}
}

上面例子中JavaDBTeacher 为什么不调用super(school, name);会报错,我在主函数中并没有先创造交类中对象再创建子类中的对象啊,怎么又没报错?是不是在调用父类构造函数时系统会自动创建一个父类的对象? 请求高手指点,不用感激!!!!
展开
 我来答
九尾y
推荐于2017-09-05 · TA获得超过290个赞
知道小有建树答主
回答量:325
采纳率:85%
帮助的人:91.3万
展开全部
父类是子类的补充,如果子类要创建对象就要对子类初始化,子类不是继承了父类吗?如果只初始化子类,你觉得子类初始化所有的东西了吗?

所以父类要先初始化,再给子类初始化,这样子类就初始化完全了,才能给子类创建对象。。。。
bd9123
2010-08-27
知道答主
回答量:27
采纳率:0%
帮助的人:0
展开全部
java在调用构造方法的时候,如果没有显示的调用super(。。。)的时候,总会先默认的调用super(),即无参的构造方法。类如果没有写构造函数,则系统会自动给其创建一个默认的构造函数,如果给些了构造函数,则系统不会给其创建构造函数。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
java和小熊
2015-10-09 · 超过69用户采纳过TA的回答
知道小有建树答主
回答量:103
采纳率:100%
帮助的人:88.5万
展开全部
因为需要把多个对象的共有部分单独拿出来,作为父类。子类继承就可以了。1、可以减少代码量 2、可以根据父类很容易知道子类有一种什么特性 3、方便以后扩展
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
手机用户83995
2010-08-28
知道答主
回答量:7
采纳率:0%
帮助的人:1.2万
展开全部
当实例化子类时, 必先实例化其父类 , 你可以自己看看 java中的实例化顺序, 面试题中可能会出现, 也会更好的帮助你了解java, 例如final、static变量 在父类 和 子类中的实例化顺序
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
547587
推荐于2017-10-07 · TA获得超过132个赞
知道答主
回答量:112
采纳率:0%
帮助的人:99.4万
展开全部
JavaDBTeacher 不调用super(school, name)会报错,是因为它的父类没有默认的构造方法,就是JavaTeacher(),所以需要你显性地去调用父类的构造方法,如果有的话就可以不用调用父类的构造方法

创建子类对象的时候,会调用父类的构造方法,会自动创建对应的父类对象,所以不会报错的。

多看看java编程思想,有了一些java基础之后!
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式