快速业务通道

Java编程那些事儿67——this和super - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-24
类的内部,成员方法之间的互相调用时也可以使用“this.方法名(参数)”来进行引用,只是所有这样的引用中this都可以省略,所以这里就不详细介绍了。

8.8.2 super关键字

super关键字的中文意思是超级的,使用super关键字可以在子类中引用父类中的内容。主要的使用形式有以下几种:

l 在子类的构造方法内部引用父类的构造方法

l 在子类中调用父类中的成员方法

l 在子类中调用父类中的成员变量

Java编程那些事儿67——this和super(3)

时间:2010-03-11 csdn 陈跃峰

8.8.2.1 引用父类构造方法

在构造子类对象时,必须调用父类的构造方法。而为了方便代码的编写,在子类的构造方法内部会自动调用父类中默认的构造方法。但是如果父类中没有默认的构造方法时,则必须手动进行调用。

使用super可以在子类的构造方法内部调用父类的构造方法。可以在子类的构造方法内部根据需要调用父类中的构造方法。

使用super关键字调用父类构造方法的示例代码如下:

//文件名:SuperClass.java public class SuperClass {  public SuperClass(){}  public SuperClass(int a){}} //文件名:SubClass.java public class SubClass extends SuperClass {  public SubClass(){   super(); //可省略  }  public SubClass(int a){   super(a);  }  public SubClass(String s){   super(); //可省略 }}

在该示例代码中,SubClass继承SuperClass类,在SubClass类的构造方法内部可以使用super关键字调用父类SubClass的构造方法,具体调用哪个构造方法没有限制,可以在子类内部根据需要进行调用,只是根据调用的构造方法不同传入适当的参数即可。

由于SubClass类的父类SuperClass内部有默认的构造方法,所以SubClass的构造方法内部super()的代码可以省略。

和使用this关键字调用构造方法一样,super调用构造方法的代码只能出现在子类构造方法中的第一行可执行代码。这样super调用构造方法的代码在子类的构造方法内部则最多出现一句,且不能和this调用构造方法的代码一起使用。

8.8.2.2 引用父类成员方法

在子类中继承了父类中的成员方法,一般可以直接通过方法名使用,但是如果在子类中覆盖了父类的成员方法以后,如果需要在子类内部调用父类中被覆盖的成员方法时则不能直接调用了,这样就又需要使用super关键字了。

示例代码如下:

//文件名:SuperClass2.java public class SuperClass2 {  public void test(){}  public void print(int a){   System.out.println("SuperClass2: " + a); }} //文件名:SubClass2 public class SubClass2 extends SuperClass2 {  public void print(int a){   super.print(a);   System.out.println("SubClass2");  }  public void t(){   super.test(); //super可省略    super.print(0); //不可省略 }}

8.8.2.3 引用父类成员变量

在子类中如果引用父类的成员变量,也可以使用“super.成员变量”来引用,只是一般成员变量的覆盖是没有意义的,所以这个时候都可以直接使用成员变量名进行引用,所以这里的super都可以省略。

8.8.3 注意的问题

最后,在实际使用this和super时,除了上面介绍到的需要注意的问题以外,还需要特别注意的是,this和super都是非静态的,所以这两个关键字都无法在静态方法内部进行使用。

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号