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);会报错,我在主函数中并没有先创造交类中对象再创建子类中的对象啊,怎么又没报错?是不是在调用父类构造函数时系统会自动创建一个父类的对象? 请求高手指点,不用感激!!!! 展开
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);会报错,我在主函数中并没有先创造交类中对象再创建子类中的对象啊,怎么又没报错?是不是在调用父类构造函数时系统会自动创建一个父类的对象? 请求高手指点,不用感激!!!! 展开
7个回答
展开全部
java在调用构造方法的时候,如果没有显示的调用super(。。。)的时候,总会先默认的调用super(),即无参的构造方法。类如果没有写构造函数,则系统会自动给其创建一个默认的构造函数,如果给些了构造函数,则系统不会给其创建构造函数。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
因为需要把多个对象的共有部分单独拿出来,作为父类。子类继承就可以了。1、可以减少代码量 2、可以根据父类很容易知道子类有一种什么特性 3、方便以后扩展
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
当实例化子类时, 必先实例化其父类 , 你可以自己看看 java中的实例化顺序, 面试题中可能会出现, 也会更好的帮助你了解java, 例如final、static变量 在父类 和 子类中的实例化顺序
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
JavaDBTeacher 不调用super(school, name)会报错,是因为它的父类没有默认的构造方法,就是JavaTeacher(),所以需要你显性地去调用父类的构造方法,如果有的话就可以不用调用父类的构造方法
创建子类对象的时候,会调用父类的构造方法,会自动创建对应的父类对象,所以不会报错的。
多看看java编程思想,有了一些java基础之后!
创建子类对象的时候,会调用父类的构造方法,会自动创建对应的父类对象,所以不会报错的。
多看看java编程思想,有了一些java基础之后!
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询