打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
在Java中super和this的区别

摘要:在Java中我们会时常用到super及this的用法,现在我主要来区分一下super.和this.及superL()及this()之间的区别,来对它们的认识和了解:

  1.this的用法在Java中:

①:this.:this加点指此时代表当前对象,能操作当前类里面的所有属性及方法以及父类继承而来能被访问修饰符允许的属性和方法。

  super.:此时指代当前对象类的父类对象部分,不能操作到本类的属性和方法,能操作到父类的能被父类访问修饰符允许的属性和方法,只有当本类中调用被重写前的效果时使用super.的方法。

  语法:this.成员名  或者  this. 方法名

  例:这是this加点使用

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
public class DemoThis {
    private String name;
    private int age;
    public DemoThis() {
        this.print();// 你可以加上this来调用方法,
    }
    public DemoThis(String name, int age) {
        this.name = name;
        this.age = age;//这里就必须使用this加点的方法来区分,this.name就指代当前的属性name;
    }
    public void setName(String name) {
        this.name = name; // 此处必须指明你要引用成员变量
    }
    public void setAge(int age) {
        this.age = age;
    }
    public void print() {
        System.out.println('Name=' + name + ' Age=' + age); // 在此行中并不需要用this,
                                                            // 因为没有会导致混淆的东西
    }
}

  例:super加点的使用,

1
2
3
4
5
6
7
8
9
10
11
package com.lov.lianxiText;
public class DemoThis {//父类
    private String name;
    private int age;
    public DemoThis() {
    }
    public void print() {
        System.out.println('哈哈哈哈。。。。。');                                       
    }
}

  

1
2
3
4
5
6
7
8
9
10
11
package com.lov.lianxiText;
public class Demo extends DemoThis {//子类
    public Demo(){
         
    }
    public void print(){
        super.print();//只有这个时候用super.方法,其他我们基本用this.方法
        System.out.println('嘿嘿嘿.......');
    }
}

 总结:有上面我们可知道,this.的使用范围要比super.的范围更大,除了上面要看重写前的效果能super,我们都是用this.的方法。

2:this()与super()

 ①this()和super()都是使用只能使用于构造方法中,

 ②this()调用本类的构造,如果括号内有形参,则是调用本类的与之相对应参的构造方法;super()调用父类指定的构造方法,

 ③都只能写在构造方法的第一句;

 ④super()可以不写,在不写的时候会默认调用父类的无参构造,

 ⑤this()与super()不能共存,两者只能使用一个。

 

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
java三大特性
Java中static、this、super、final用法简谈(二)
JAVA面对对象(三)——Super、static、final关键字
第十二天 面向对象-构造方法&继承&this&super【悟空教程】
java学习总结-高级语言特性-封装,继承,多态
java面向对象思想(2)
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服