java

关注公众号 jb51net

关闭
首页 > 软件编程 > java > Java super和this的用法

Java中super和this的用法详解

作者:sakura_inm

这篇文章主要介绍了Java中super和this的用法详解,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

super 用法
super关键字用来访问父类内容,具体用法可分为三种:
1.子类的成员方法访问父类的成员变量

public class Animal {
  public int age = 10;
}

class Dog extends Animal {
  public int age = 5;

  public void showAge() {
    System.out.println(super.age);
  }
}

2.子类的成员方法访问父类的成员方法

public class Animal {
  public void fn(){
    System.out.println("父类Animal的方法");
  }
}

class Dog extends Animal {
  @Override
  public void fn() {
    super.fn();
    System.out.println("子类Dog的方法");
  }
}

3.子类的构造方法访问父类的构造方法

public class Animal {
  public Animal() {
    System.out.println("父类Animal的构造方法");
  }
}

class Dog extends Animal {
  public Dog() {
    super();
    System.out.println("子类Dog的构造方法");
  }
}

this 用法
this关键字用来访问本类内容,具体用法可分为三种:
1.本类的成员方法访问本类的成员变量

public class Dog extends Animal {
  public int age = 1;

  public void showAge() {
    int age = 3;
    System.out.println(age);
    System.out.println(this.age);
  }
}

2.本类的成员方法访问本类的另一成员方法

public class Dog extends Animal {
  public int age = 1;

  public void showAge() {
    int age = 3;
    System.out.println(age);
    System.out.println(this.age);
  }

  public void fn() {
    this.showAge();
  }
}

3.本类的构造方法访问本类的另一个构造方法,此时this(…)调用必须放在这个构造方法中的第一句,且只能使用一次

public class Dog extends Animal {
  public Dog() {
    this(2);
    System.out.println("无参构造");
  }

  public Dog(int age) {
    System.out.println(age);
    System.out.println("有参构造");
  }
}

super和this内存图解

在这里插入图片描述

总结

到此这篇关于Java中super和this的用法的文章就介绍到这了,更多相关Java中super和this的用法内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文