day09-继承中this关键字

This commit is contained in:
2026-05-23 11:05:59 +08:00
parent c55ffbfab1
commit acc637a0ff
2 changed files with 52 additions and 2 deletions

View File

@@ -13,6 +13,10 @@ public class Demo05 {
Fu fu = new Fu(10);
System.out.println("--------------------------------");
zi.methodZi();
System.out.println("--------------------------------");
zi.method1(10);
System.out.println("--------------------------------");
zi.method2();
System.out.println("程序结束");
}

View File

@@ -7,15 +7,46 @@ super三个使用操作
1.super,可以在子类的成员方法中访问父类的成员变量格式super.父类成员变量
2.super,可以在子类的成员方法中访问父类的成员方法格式super.父类成员方法名(参数列表)
3.super,可以在子类的构造方法中访问父类的构造方法格式super(参数列表)
-------------------------------------------------------------------
谁调用成员方法方法中的this就是谁对象
this表示本类super表示父类
this关键字使用方式
1.this,可以区分当前类中局部变量和成员变量
2.this,可以在本类的成员方法中,调用该类的其他的成员方法(其实在一个类中所有的成员变量和成员方法的调用之前都有this.)
3.this,可以在本类的构造方法中,调用其他的重载构造方法,格式为 this(参数列表)
关于第三点的注意事项:
a.this必须在第一行不能调用自己构造方法自己不能调用自己
b.this和super在调用构造方法时都必须在第一行所以在一个构造方法中不能同时出现
c.this可以调用其他的重载构造方法但是不能互相调用死循环
*/
public class Zi extends Fu{//子类继承了父类,拥有了父类的非私有的成员
int num = 50;
int num1;
//无参构造方法
public Zi(){
//super(10);//注意如果不写该行代码编译器会自动添加super(),调用父类的无参构造,并且必须在第一行
super();
System.out.println("子类的无参构造方法");
this(0);
}
//有参构造方法
public Zi(int num){
this(num, 0);
}
public Zi(int num,int num1){
this.num = num;
this.num1 = num1;
System.out.println("子类的有参参构造方法");
System.out.println("初始化操作1");
System.out.println("初始化操作2");
System.out.println("初始化操作3");
System.out.println("初始化操作4");
System.out.println("初始化操作5");
}
//子类的成员方法
public void methodZi(){
@@ -23,4 +54,19 @@ public class Zi extends Fu{//子类继承了父类,拥有了父类的非私有
//调用父类的成员方法
super.methodFu();
}
//子类的成员方法
public void method1(int num){//形参也是一个局部变量
//区分本类的同名的num
System.out.println(num);//局部变量
System.out.println(this.num);//本类的成员变量
System.out.println(super.num);//父类的成员变量
}
public void method2(){
//调用本类的成员方法
method1(10);
this.method1(10);
}
}