Super用法:
supper关键字的用法有三种:
1.在子类的成员方法中,访问父类的成员变量
2.在子类的成员方法中,访问父类的成员方法
3.在子类的构造方法中,访问父类的构造方法
总结一句话就是,super是用来调用父类的,以下是示例代码:
父类:
package cn.day06;
public class Fu {
//第一个知识点所需要的
int num = 10;
//第二个知识点所需要的
public void method() {
System.out.println("父类的方法");
}
}
子类:
package cn.day06;
/*
* supper关键字的用法有三种
* 1.在子类的成员方法中,访问父类的成员变量
* 2.在子类的成员方法中,访问父类的成员方法
* 3.在子类的构造方法中,访问父类的构造方法
* */
public class Zi extends Fu{
/**
* 第一个知识点:在子类的成员方法中,访问父类的成员变量
*/
int num=20;
public void methodZ(){
System.out.println(super.num); //父类中的num
}
/**
* 第二个知识点:在子类的成员方法中,访问父类的成员方法
*/
public void method(){
super.method();//访问父类中的method方法
System.out.println("子类的方法");
}
public Zi(){
super();//子类的构造器正在访问父类的构造器
}
}
this用法:
super关键字是用来访问父类内容的 this关键字用来访问本类内容,用法也有三种: 1.在本类的成员方法中,访问本类的成员变量 2.在本类的成员方法中,访问本类的另一个成员方法 3.在本类的构造方法中,访问本类的另一个构造方法 A:this(...)调用也必须是构造方法的第一个语句,唯一一个 B:super和this两种构造调用,不能同时使用
总结一句话就是,this是用来调用本类的,以下是示例代码:
父类:
package cn.day07;
public class Fu {
int num=20; //父类中的成员变量
}
子类:
package cn.day07;
/**
* super关键字是用来访问父类内容的
* this关键字用来访问本类内容,用法也有三种:
* 1.在本类的成员方法中,访问本类的成员变量
* 2.在本类的成员方法中,访问本类的另一个成员方法
* 3.在本类的构造方法中,访问本类的另一个构造方法
* A:this(...)调用也必须是构造方法的第一个语句,唯一一个
* B:super和this两种构造调用,不能同时使用
*/
public class Zi extends Fu {
int num = 20;//子类中的成员变量
public void showNum() {
int num = 10;
System.out.println(num);//局部变量
/**
* 1.在本类的成员方法中,访问本类的成员变量
*/
System.out.println(this.num);//本类中的成员变量
System.out.println(super.num);//父类中的成员变量
}
/**
* 2.在本类的成员方法中,访问本类的另一个成员方法
*/
//A:
public Zi() {
//this() 自己调用自己
//调用B方法一个参数
this(123); //本类的无参构造,调用本类的有参构造 这叫构造方法的重载调用
}
//B:
public Zi(int n) {
//调用c方法,两个参数
this(2, 3);
}
//C:
public Zi(int n, int m) {
//不能再调用A B方法
}
public void methodA() {
System.out.println("AAA");
}
public void methodB() {
this.methodA();
System.out.println("BBB");
}
}