Notes(1):构造方法的调用
来源:互联网 发布:什么软件可以制作证件 编辑:程序博客网 时间:2024/06/06 23:49
Note:
所有的子类构造方法默认调用父类的无参构造方法,只有当子类构造方法中指明调用父类的构造方法时,才会调用相应的父类构造方法。
Example:
public class Person {
Person(){
System.out.println("This is the Person!");
}
Person(String s){
System.out.println("Person : "+s);
}
}
public class Chinese extends Person{
Chinese(){
System.out.println("This is a Chinese!");
}
Chinese(String name){
super(name);
System.out.println("Chinese name is : "+name);
}
Chinese(String name,String address){
this(name);
System.out.println(name+"'s address is:"+address);
}
public static void main(String args[]){
Chinese c=new Chinese("XiaoWang");
}
}
运行的结果为:
Person : XiaoWang
Chinese name is : XiaoWang
在子类中可以使用super来调用父类的构造方法,可以使用this来调用自身的构造方法。
如:当main变成如下代码时,
public static void main(String args[]){
Chinese c=new Chinese("XiaoWang","Shenzhen");
}
运行的结果为:
Person : XiaoWang
Chinese name is : XiaoWang
XiaoWang's address is:Shenzhen
请注意:
如果把子类的构造函数改成如下形式是错误的:
Chinese(String name){
System.out.println("Chinese name is : "+name);
super(name);
}
调用构造函数的语句必须放在构造函数所有语句的最前面。
所以,如下的形式也自然是错误的:
Chinese(String name,String address){
super(name);
this(name);
System.out.println(name+"'s address is:"+address);
}
因为super(name)和this(name)会去竞争第一语句的位置。
由上面的描述,我们也可以得到下面的结论:
当有多层继承关系的时候,构造函数的执行顺序也是自上而下的,即先执行顶层类的构造函数,然后顺次执行到最低层类的构造函数,可以用栈的思想来理解。
- Notes(1):构造方法的调用
- Java中的构造器(构造方法)的调用
- 构造方法的调用-要点
- 构造方法的调用顺序
- 方法的调用 this方法 构造方法
- JavaDay03--Notes(数组的遍历和部分拷贝+方法的调用、参数和返回值)
- 类、构造方法方法的调用对象创建实例(1)
- java 构造方法的相互调用(在一个构造器中,通过this调用另一个构造器)
- 在构造方法中调用当前类的构造方法
- 反射之字段、方法、构造器的调用(二)
- 黑马程序员---构造方法调用构造方法(原创)
- 【类反射】类的调用(调用类中的成员:成员变量、方法、构造方法)
- 记住调用super类的构造方法!
- java中构造方法的调用顺序
- 调用父类的构造方法
- Java构造方法的相互调用
- java父类构造方法的调用
- 使用this调用重载的构造方法
- 如何进行职业规划?
- Eclipse首度推出PHP开发工具
- Oracle Form属性、内置子程序、触发器、系统变量精解
- Hints (Transact-SQL)
- 易受攻击:微软苹果Oracle前三,Linux kernel第十
- Notes(1):构造方法的调用
- 公司软件开发人员绩效评价标准
- 开发者呼吁乔布斯:打破iPhone封闭的墙
- 对于ASP编码问题的深入研究与最终解决方案
- 软件公司绩效考核(大家提提建议)
- AJAX开发调查:平台及语言Java皆胜微软
- 最近运气不错,连中两新股
- 十大已亡或正在灭亡的电脑技术,C入选
- ToString 格式化数值