package Extends;
/*super关键字用来访问父类内容而this关键字用来访问本类内容,方法有三种
1.在本类的成员方法中,调用本类的成员变量
2.在本类的成员方法中,访问本类的另一个成员方法
3.在本类的构造方法中,访问本类的另一个构造方法
A.this(。。。)调用必须是构造方法的第一个语句(即有了this之后不会再赠送super)
B.super和this两种构造调用,不能同时使用
*
* */
public class Character_this extends Fu {
int num = 20;
public Character_this() {
this(10);//调用本类中一个参数的构造方法
System.out.println("构造方法1");
}
public Character_this(int n) {
this(1,2);
System.out.println("构造方法2");
}
public Character_this(int n, int m) {
System.out.println("构造方法3");
}
public void showNum() {
int num = 10;
System.out.println("访问本类成员变量:");
System.out.println(num);//调用局部变量
System.out.println(this.num);//调用成员变量
}
public void methodA() {
System.out.println("访问本类成员方法:");
System.out.println("methodA");
this.showNum();
}
}
package Extends;
/*super关键字的三种用法:
* 1.在子类的成员方法中,访问父类的成员变量
* 2.在子类的成员方法中,访问父类的成员方法
* 3.在子类的构造方法中,访问父类的构造方法(包括无参以及全参)
*
* */
public class super关键字的三种用法 extends Fu {
int num = 20 ;
public super关键字的三种用法(){
super();//访问父类的构造方法
}
public void methodsuper关键字的三种用法(){
System.out.println(super.num);//父类中的num
}
public void method(){
super.method();//访问父类中的method
System.out.println("子类方法");
}
}
package Extends;
/*JAVA类的继承的特点:(以后会学接口继承的特点)
1.java语言是单继承的
一个类的(直接父类)只有一个
2.java语言可以多级继承
java.lang.Object是所有其他类的父类
3.一个子类的直接父类是惟一的,但是一个父类可以
拥有多个子类
* */
public class Fu {
int num= 10 ;
public void method(){
System.out.println("父类方法");
}
}
package Extends;
public class impl {
public static void main(String[] args) {
Character_this ch = new Character_this();//调用本类另一个构造方法
// ch.showNum();//调用本类成员变量
// ch.methodA();//调用本类另一个成员方法
super关键字的三种用法 sup = new super关键字的三种用法();
sup.methodsuper关键字的三种用法();
sup.method();
int num =sup.num;
System.out.println(num);
}
}