首先继承关系下构造方法的访问特点主要有以下三个方面:
1.在子类的构造方法中,如果没有显示的写super(参数),则默认赠送一个super()。
2.如果显示的写了一个super(参数),则不再赠送。
3.super(参数),必须是第一个语句。
接下来我们通过一个例子来说明:
public class Test {
public static void main(String[] args) {
Zi zi=new Zi();
zi.method();
}
}
public class Fu {
public int a=10;
public void method() {
System.out.println(a);
}
}
public class Zi extends Fu{
public int a=20;
public void test() {
System.out.println(a);
}
}
这个代码执行过后的结果是10,咱们能通过图示看到:
通过这个例子我们能看到,在创建子类的时候,一定会调用到父类的method构造方法。而且在本例中我并没有写super(参数),此时会默认赠送一个super()。
注意事项:
super();调用父类的构造方法,只能在子类的构造方法调用。
除此以外还有this()访问本类的其他成员方法,有四个方面如下:
1.this()必须写在构造方法中
2.必须是第一个语句,this(参数)和super(参数)还不能同时存在
3.写类this(参数)之后就不在赠送super()
4.构造方法不能递归
同样我们也通过一个具体的例子来说明this()的用法:
public class Test {
public static void main(String[] args) {
Zi zi=new Zi();
zi.test();
}
}
public class Fu {
public int a=10;
public void method() {
System.out.println(a);
}
}
public class Zi extends Fu{
public int a=20;
public void test() {
this.method();
}
}
如上图代码块所示,我们在子类中用this()调用了父类中的method()方法,所以独处的结论肯定是10.
运行如下图:
以上就是继承关系下构造方法的访问特点以及this()访问本类其他成员方法的概念以及举例。