首页 > 编程语言 > 详细

Java的super和this

时间:2021-07-06 23:15:26      阅读:29      评论:0      收藏:0      [点我收藏+]

Java的super和this

super

私有的东西无法被继承

使用super可以调用父类的属性或者方法

super.name;
super.print();

super();调用父类的无参构造器,必须在子类构造器的第一行。定义子类构造器的时候,它是默认存在的,隐藏代码。

super(“name”);调用父类的有参构造器

super的注意点:

  1. super调用父类的构造方法,必须在构造方法的第一个
  2. super必须只能出现在子类的方法或者构造方法中
  3. super和this不能同时调用构造方法
package com.cnblogs;
//本类用于实现
public class Application {
    public static void main(String[] args) {
        //实例化父类
        Persion persion = new Persion();
        //实例化子类
        Student stu = new Student();

        stu.show();
        //这是父类的方法
        //1000000000
    }
}

package com.cnblogs;
/*
persion类
 */
public class Persion {
    //父类方法
   public void in(){
       System.out.println("这是父类的方法");
   }
    //父类属性
   public int rmb = 10_0000_0000;
}

package com.cnblogs;
/*
student类
 */
public class Student extends Persion{
    public void show(){
        super.in();
        System.out.println(super.rmb);
    }
}

this

this代表的就是"本类"

package com.cnblogs;
//本类用于实现
public class Application {
    public static void main(String[] args) {
        //实例化
        Persion persion = new Persion();

        persion.show();
        //1
        //2
    }
}

package com.cnblogs;
/*
persion类
 */
public class Persion {
    //本类属性
    public int a = 1;
    public int b = 2;

    //本类方法
   public void in(){
       //this调用本类属性
       System.out.println(this.a);
       System.out.println(this.b);
   }
   //this调用本类方法
   public void show(){
       this.in();
   }

}

使用this区分同名变量

package com.cnblogs;
//本类用于实现
public class Application {
    public static void main(String[] args) {
        //实例化
        Persion persion = new Persion("柒",21);
        persion.show();
        //柒
        //21
    }
}

package com.cnblogs;
/*
persion类
 */
public class Persion {
    //本类属性
    public String name;
    public int age;

    //本类的构造方法
    public Persion(String name,int age) {
        this.name = name;
        this.age = age;
    }

    //展示方法
    public void show(){
        System.out.println(this.name);
        System.out.println(this.age);

    }
}

super和this的比较

  • 代表的对象不同
    • this:本身调用者这个对象
    • super:代表父类对象的应用
  • 前提
    • this:没有继承也可以使用
    • super:只能在继承条件才能使用
  • 构造方法
    • this():本类的构造
    • super():父类的构造

Java的super和this

原文:https://www.cnblogs.com/fangweicheng666/p/14978679.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!