Java中super和this的用法

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");
    }

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值