关于Java 构造函数的问题。。 20
2个回答
展开全部
构造函数是一个类中的特殊的函数,构造函数用于在生成对象时的初始化。普通的方法在类中按照顺序去执行,而构造函数在使用new运算符创建对象时才会自动调用。
在继承的相关概念中,子类继承父类。在生成子类对象的同时,会形成如下初始化的优先级。
1.生成子类,首先调用父类
2.在类中,首先初始化属性,后初始化构造方法(属性在类中,在方法中叫变量)
父类属性-->父类构造方法-->子类属性-->子类构造方法
在子类的构造方法中,会默认的调用父类构造方法,有隐形的super()方法;因此,如果父类中如果没有无参构造方法,就会报错
在继承的相关概念中,子类继承父类。在生成子类对象的同时,会形成如下初始化的优先级。
1.生成子类,首先调用父类
2.在类中,首先初始化属性,后初始化构造方法(属性在类中,在方法中叫变量)
父类属性-->父类构造方法-->子类属性-->子类构造方法
在子类的构造方法中,会默认的调用父类构造方法,有隐形的super()方法;因此,如果父类中如果没有无参构造方法,就会报错
2017-08-18
展开全部
这就是钻牛角尖啊! 半天想不通这是要干什么……
我觉得这也不算循环,是一个函数间接调用自身……
可以写2个构造函数,就避开了递归调用~
class A {
public A() {
System.out.println("Hello!");
new A("haha");
}
public A(String s) {
System.out.println("Hello!");
}
}
或者想个办法加入递归结束的条件~
我觉得这也不算循环,是一个函数间接调用自身……
可以写2个构造函数,就避开了递归调用~
class A {
public A() {
System.out.println("Hello!");
new A("haha");
}
public A(String s) {
System.out.println("Hello!");
}
}
或者想个办法加入递归结束的条件~
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询