一.构造方法:创建对象时用来初始化该对象的方法,其方法名必须与所在类名相同。如果
我们没有提供构造方法,系统在编译时会自动提供一个无参构造方法;
- (1)构造方法没有返回值(包括void);
(2)构造方法可以被重载,但不能被重写(有参构造方法不能被继承);
(3)子类创建对象时,先创建父类对象。
(4)一个构造方法中调用另一个构造方法时,要用 this (参数) 来实现,且必须放
在该构造方法的第一行。
二.构造方法的继承问题:
- 子类只能继承父类中的无参构造方法;如果父类中没有无参构造方法,则子
类不能继承父类中的构造方法。 - 子类继承的父类的无参构造方法不能成为子类的无参构造方法。
- 创建对象时,先调用父类的无参构造方法进行初始化,然后才是子类的。
- 子类必须调用父类的非默认构造方法,调用时要使用super方法;如果是默
认构造方法,则系统会自动调用。
三.扩展
- this的用法
this:指代对象本身,是指向本对象的一个指针。
用法:
(1)、一个类明确调用自己的属性和方法时,使用 this. 属性名 和 this. 方法名
(通常this会省略)。
(2)、一个构造方法调用本类的其他构造方法时,使用 this(参数),且必须放
在第一行。
(3)、局部变量与全局变量重名时,使用this标记全局变量。
注:this只能用在非静态方法的方法体中。 - super的用法
super:指父类,是Java的一个关键字。
用法:
(1)、子类调用父类的构造方法,使用 super. ( [参数] ),且必须放在第一行。
(2)、子类调用父类的变量和方法,使用 super. 变量名 和super. 方法名([参数])。
注:super只能用在非静态方法的方法体中;且不能与this同时出现在一个构造方法中。
网友评论