day09--继承中super和this的使用
This commit is contained in:
@@ -4,6 +4,26 @@ package com.inmind.extends_contructor04;
|
|||||||
1.创建子类对象时,一定会调用父类的构造方法
|
1.创建子类对象时,一定会调用父类的构造方法
|
||||||
2.super调用父类的构造方法时,必须在子类的构造方法的第一行
|
2.super调用父类的构造方法时,必须在子类的构造方法的第一行
|
||||||
3.super可以调用父类的有参构造方法。
|
3.super可以调用父类的有参构造方法。
|
||||||
|
|
||||||
|
----------------------------------------------------
|
||||||
|
super三个使用操作:
|
||||||
|
1.super,可以在子类的成员方法中,访问父类的成员变量,格式super.父类成员变量
|
||||||
|
2.super,可以在子类的成员方法中,访问父类的成员方法,格式:super.父类成员方法名(参数列表)
|
||||||
|
3.super,可以在子类的构造方法中,访问父类的构造方法,格式:super(参数列表)
|
||||||
|
----------------------------------------------------
|
||||||
|
谁调用方法,方法中的this就是谁(对象)
|
||||||
|
this表示本类,super表示父类
|
||||||
|
|
||||||
|
this关键字使用方式
|
||||||
|
1.this,可以区分当前类中局部变量和成员变量
|
||||||
|
2.this,可以在本类的成员方法中,调用该类的其他的成员方法(其实在一个类中所有的成员变量和成员方法的调用之前都有this.)
|
||||||
|
3.this,可以在本类的构造方法中,调用其他的重载构造方法
|
||||||
|
|
||||||
|
关于第三点的注意事项:
|
||||||
|
a.this必须在第一行,不能调用自己构造方法(自己不能调用自己)
|
||||||
|
b.this和super在调用构造方法时,都必须在第一行,所以在一个构造方法中不能同时出现
|
||||||
|
c.this可以调用其他的重载构造方法,但是不能互相调用(死循环)
|
||||||
|
|
||||||
*/
|
*/
|
||||||
public class Demo06 {
|
public class Demo06 {
|
||||||
public static void main(String[] args) {
|
public static void main(String[] args) {
|
||||||
|
|||||||
@@ -3,7 +3,23 @@ package com.inmind.extends_contructor04;
|
|||||||
public class Zi extends Fu{
|
public class Zi extends Fu{
|
||||||
//默认无参构造
|
//默认无参构造
|
||||||
public Zi(){
|
public Zi(){
|
||||||
super("张飞",20);
|
this("张三");
|
||||||
|
// super("张飞",20);
|
||||||
System.out.println("子类无参构造方法被调用了");
|
System.out.println("子类无参构造方法被调用了");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Zi(String name){
|
||||||
|
// super("张飞",20);
|
||||||
|
System.out.println("子类无参构造方法被调用了");
|
||||||
|
}
|
||||||
|
|
||||||
|
public void test(){
|
||||||
|
this.test2();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void test1(){
|
||||||
|
}
|
||||||
|
|
||||||
|
public void test2(){
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user