java中this和super关键字的使用

this作用:

1.调用隐式参数;
2.在本类的一个构造器中调用另一个构造器。

super作用:

1.在子类构造器中调用父类的构造器;
2.在子类方法中调用父类的方法。

注意:

1.无论是用this在本类中调用另一个构造器还是用super在子类中调用父类的构造器,该调用语句必须位于语句块的第一句,否则会有“Constructor call must be the first statement in a constructor”报错提示;
2.由第一条可以得出在一个子类的构造器中不能同时调用调用父类的构造器和本类的其他构造器;
3.super调用父类方法时,super关键字只能用在子类非静态方法中,否则“Cannot use super in a static context”报错提示。

package com.zzit.demo;

public class Animal {
    private int leg;

    public Animal() {
        // 根据传入参数的类型、顺序、参数个数判断调用哪一个构造器
        this(2);
    }

    public Animal(int leg) {
        super();// 调用Object类的无参构造
        this.leg = leg;
    }

    public void run() {
        System.out.println("动物跑");
    }

    public int getLeg() {
        return leg;
    }

    public void setLeg(int leg) {
        //this.leg隐式调用对象
        this.leg = leg;
    }

}
package com.zzit.demo;

public class Bird extends Animal {
    public Bird() {
        super(2);// 调用父类带参数的构造方法
    }
    //子类方法中使用了super关键字调用父类方法,该方法不能设置为静态方法
    public void fly() {
        super.run();// 调用父类的run方法
        System.out.println("鸟儿用翅膀飞");// 子类自有方法的描述
    }

    public static void main(String[] args) {
        new Bird().fly();
    }

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值