Super和This的区别

 

  This指向是当前域内的对象,而Super更像是一个指针,指向父类。

                    

public class Father {
	   protected String firstName;
 
           public Father(String firstName) {
                this.firstName = firstName;
           }
}
public class Son extends Father{    
    private String lastName;
	 
	 Son(String firstName,String lastName){
 	   super(firstName);
 	   this(lastName);
 	   System.out.println("son name: "+this.firstName+this.lastName);    	  
    }
}
class Test{
	    public static void main(String[] args){
	    	new Son("PAN","HU");	    	
	    }
}

         此示例直接出现编译时错误:Constructor call must be the first statement in a constructor

    

       将Son类改成如下: 

<pre name="code" class="java">public class Son extends Father{    
    private String lastName;
           Son(String firstName,String lastName){
                 super(firstName);
                 this.lastName = lastName;
                 System.out.println("son name: "+this.firstName+this.lastName);    
     } 
}

     
  此示例输出结果如下: 
son name: PANHU 

      this犹如Son  myson= new Son()中的myson一般。this是指现在域中的对象。

          

       其他注意事项:

    1、构造方法中Super()或者this() 只能放在第一行,

        2、  一个构造方法不能同时存在super()和this()

   


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值