2 cmf191734907 cmf191734907 于 2016.03.17 17:56 提问

子类构造方法调用方法问题

是不是子类构造方法里调用了任何方法,不管是自己重构的构造方法,还是其他方法,系统就不会给super()了,初学者有疑问,求大神解答

2个回答

wojiushiwo945you
wojiushiwo945you   Ds   Rxr 2016.03.17 18:00
已采纳
     子类构造函数可以同时调用父类的super和其他方法,但是有语法限制,即如果需要调用父类super操作必须放在第一行。否则会有编译错误的。
u010733398
u010733398   2016.03.17 18:11

创建子类对象,是一定会调用其父类构造方法的,当你不写super()的时候, 调用的是父类默认构造方法

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
子类继承父类时,创建对象,构造方法的调用问题
在学习继承的时候,遇到一些小问题,这里总结一下,有错误望指正: 先来看一段代码: //标准父类 class Father{ //成员变量 private String name; private int age; //构造方法 //空参 public Father(){ } //有参 public Father(String nam
Java 父类构造函数中调用子类重写的方法
参考文章 看一段代码:public class main_class { public static void main(String[] args){ new c2(); } } class c1{ String name="aaaaaa"; //父类构造函数 public c1(){ print(); } //该构
java父类构造函数调用子类覆盖方法
原文链接:http://blog.csdn.net/zhuoaiyiran/article/details/19489745 参考:http://blog.csdn.net/bettarwang/article/details/26160183 1.如果父类构造器调用了被子类重写的方法,且通过子类构造函数创建子类对象,调用了这个父类构造器(无论显示还是隐式),就会导致父类在构造时实际上
java在创建对象时候 成员的执行顺序
Ø  父类中的静态成员和静态初始化块,按照在代码中出现的顺序依次执行。 Ø  子类静态成员和静态初始化代码块,按照在代码中出现的顺序依次执行。 Ø  父类实例成员和实例初始化块,按照在代码中出现的顺序依次执行。(创建每一个实例对象的时候都执行) Ø  执行父类的构造方法。(创建每一个实例对象的时候都执行) Ø  子类实例成员和实例初始化块,按照在代码中出现的顺序依次执行。(创建每一个实例对
创建子类对象时,父类构造函数中调用被子类重写的方法为什么调用的是子类的方法,而被子类重载的方法不会调用?
问题:创建子类对象时,父类构造函数中调用被子类重写的方法为什么调用的是子类的方法,而被子类重载的方法不会调用? public class Basic{ public void add(int i) { System.out.println("Basic add"); } public Basic() { add('a');
为什么在实例化子类的对象的时候会调用先调用父类的构造函数
1、为什么在实例化子类的对象的时候会调用先调用父类的构造函数? 答:因为子类继承父类之后,获取到了父类的内容(属性/字段),而这些内容在使用之前必须先初始化,所以必须先调用父类的构造函数进行内容的初始化. 2、在什么地方调用基类的构造函数? 答:在子类的构造函数中的第一行会隐士的调用 super();子句,即调用了父类的构造函数 如果父类里面没有定义参数为空的构造函数,那么必须在子类的构造
Java小记之方法重写与继承中的构造方法的规则
方法重写: 具有相同的方法名称,返回类型和参数列表(特别容易出错) 重写方法不能使用比被重写方法更严格的访问权限。 super关键字,来引用基类成分: class FatherClass{ } class ChildClass extends FatherClass{ } 继承中的构造方法 1.子类的构造过程中必须调用其父类(基类)的构造方法(没有父类就没
父类不含无参构造方法子类构造方法必须显式调用
在继承关系下实例化子类的时候会先实例化其父类,然后再实例化子类。 也就是说在new一个子类的时候,其实是需要先把父类new出来的,如果父类中还有父类,那么就会逐层进行,从最顶层的父类先实例化,最后才到当前的子类。
关于子类构造方法中调用父类构造方法之 super()
笔者之前一直很疑惑:为什么别人的源代码中的类要继承,居然一定要写super,而且必须写在第一行。不然就会报错。刚刚开始还以为是别人的源代码中写了注解还是什么鬼的代码。查过诸多的资料之后发现。请注意正解来了!请注意正解来了!请注意正解来了!这个是Java的规定:子类继承父类,子类的构造方法必须调用super()即父类的构造方法,而且必须放在构造方法的第一行。那么问题又来,为什么我写的类有时候都不用去...
子类父类构造方法执行顺序举例
using System; using System.Collections.Generic; using System.Linq; using System.Text; class A//new一个子类B的话,会先调用父类的构造函数,在调用子类的构造函数;然后,在调用子类的方法B.PrintFields(). {      public A()     {