构造器的重载:
构造器可以重载,创建对象时根据参数调用相应的构造器。
注意:
构造器不能直接相互调用,例如:
构造方法A(参数1,参数2){
}
构造方法B(参数1,参数2,参数3){
构造方法A(参数1,参数2); //这样的调用是错误的
}
使用this来调用!!!
this:
代表的是当前对象的引用!
this(参数)在构造方法中代表的创建的对象,根据参数调用本类当中相应重载的构造方法
this.属性 : 表示堆内存当中对象的属性,在赋值或者打印的时候 用于区别局部变量的重名。
总结:
this代表的是当前对象的引用,哪个对象调用了这个方法那么这个方法中this就代表哪个对象。
**************************************************
super:代表父类的引用
super( ) 调用父类中的构造方法。默认构造方法中自带super( );
super.属性 调用父类中的属性
super.方法 调用父类中被重写(覆盖)的方法
**************************************************
总结:
this 和 super 在构造方法中只能存在一个!
并且必须在第一行 !!!
1.先写一个父类用来被继承
1 FU.java 2 3 public class FU { 4 5 FU(){ 6 super(); 7 System.out.println("父类空参构造器"); 8 } 9 }
2.写一个类来继承FU类,实现构造器的重载
1 Test.java 2 3 public class Test extends FU{ 4 5 Test(){ 6 System.out.println("无参构造器"); 7 } 8 Test(String s){ 9 super(); 10 System.out.println("有参构造器"); 11 } 12 Test(String s , int i){ 13 //Test(s); 在构造器里不能直接调用 14 //super(); 15 this(s); 16 System.out.println("多参构造器"); 17 } 18 }