在Java中super和this的区别

在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()不能共存,两者只能使用一个。

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值