Java编程思想--构造函数的重载

来源:互联网 发布:淘宝里面最贵的东西 编辑:程序博客网 时间:2024/05/29 13:14

构造函数的重载

在创建类的对象时进行初始化工作,不但可以为对象属性赋初值,还可以在对象初始化过程中进行必要的检查和处理。

当一个够找函数需要调用另一个够找函数时,应使用关键字this,同时这个调用语句应该是整个够找函数的第一个可执行语句。

子类与父类构造函数的关系

子类并不继承父类的构造函数

1,如果子类没有定义任何构造函数,那么在创建子类对象时将调用父类无参数的构造函数

2,如果子类自己定义了构造函数,则在创建子类对象时,系统将首先隐含执行父类无参数的构造函数,然后再执行子类自己的构造函数

3,如果在子类自己定义的构造函数中,利用super关键字显式地调用父类的构造函数,系统将不再调用父类的无参数的构造函数

例子

package TEST2;class Employee{float salary;Employee(){System.out.println("使用了Employee()");}Employee(float sal){System.out.println("使用了Employee(sal)");}}class Manager1 extends Employee{float allowance;}class Manager2 extends Employee{float allowance;Manager2(){System.out.println("使用了Manager2()");}Manager2(float sal){super(sal);System.out.println("使用了Manager2(sal)");}Manager2(float sal,float aa){System.out.println("使用了Manager2(sal,sa)");}}public class TestCons {/** * @param args */public static void main(String[] args) {// TODO Auto-generated method stubSystem.out.println("--子类没有定义构造函数--");Manager1 mgr1=new Manager1();System.out.println("--子类自己的构造函数(无参数)--");Manager2 mgr2_1=new Manager2();System.out.println("--子类自己的构造函数(1个参数),显式调用父类构造函数--");Manager2 mgr2_2=new Manager2(3000);System.out.println("--子类自己的构造函数(两个参数)--");Manager2 mgr2_3=new Manager2(3000f,500f);}}

结果

--子类没有定义构造函数--使用了Employee()--子类自己的构造函数(无参数)--使用了Employee()使用了Manager2()--子类自己的构造函数(1个参数),显式调用父类构造函数--使用了Employee(sal)使用了Manager2(sal)--子类自己的构造函数(两个参数)--使用了Employee()使用了Manager2(sal,sa)


原创粉丝点击