详解Java中super的几种用法并与this的区别.docx

详解Java中super的几种用法并与this的区别.docx

ID:50404698

大小:33.53 KB

页数:3页

时间:2020-03-08

详解Java中super的几种用法并与this的区别.docx_第1页
详解Java中super的几种用法并与this的区别.docx_第2页
详解Java中super的几种用法并与this的区别.docx_第3页
资源描述:

《详解Java中super的几种用法并与this的区别.docx》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、详解Java中super的几种用法并与this的区别1、子类的构造函数如果要引用super的话,必须把super放在函数的首位classBase{Base(){System.out.println("Base");}}publicclassChecketextendsBase{Checket(){super();//调用父类的构造方法,一定要放在方法的首个语句System.out.println("Checket");}publicstaticvoidmain(Stringargv[]){Checketc=newChecket();}}如果

2、想用super继承父类构造的方法,但是没有放在第一行的话,那么在super之前的语句,肯定是为了满足自己想要完成某些行为的语句,但是又用了super继承父类的构造方法。那么以前所做的修改就都回到以前了,就是说又成了父类的构造方法了。2、在Java中,有时还会遇到子类中的成员变量或方法与超类(有时也称父类)中的成员变量或方法同名。因为子类中的成员变量或方法名优先级高,所以子类中的同名成员变量或方法就隐藏了超类的成员变量或方法,但是我们如果想要使用超类中的这个成员变量或方法,就需要用到super.classCountry{Stringname;

3、voidvalue(){name="China";}}classCityextendsCountry{Stringname;voidvalue(){name="Hefei";super.value();//不调用此方法时,super.name返回的是父类的成员变量的值nullSystem.out.println(name);System.out.println(super.name);}publicstaticvoidmain(String[]args){Cityc=newCity();c.value();}}为了在子类中引用父类中的成员变

4、量name和方法value(),在代码中使用了super、super.name和super.value(),若不调用super.value()时,super.name返回父类成员变量默认值null,调用此方法时,super.value()方法把成员变量name赋值为China,再利用super.name调用父类的成员变量的值。另外,要注意的是super.name调用的是成员变量的值classCountry{Stringname="xianfan";Stringvalue(Stringname){name="China";returnname

5、;}}classCityextendsCountry{Stringname;Stringvalue(Stringname){name="Hefei";super.value("失败");//不调用此方法时,super.name返回的是父类的成员变量的值nullSystem.out.println(name);System.out.println(super.name);returnname;}publicstaticvoidmain(String[]args){Cityc=newCity();c.value("成功");}} 结果为:Hef

6、eixianfan此时,super.name返回的值是父类成员变量的值xianfan,而此时的super.value()方法是不起作用的。3、用super直接传递参数:classPerson{publicstaticvoidprt(Strings){System.out.println(s);}Person(){prt("APerson.");}Person(Stringname){prt("Apersonnameis:"+name);}}publicclassChineseextendsPerson{Chinese(){super();/

7、/调用父类构造函数(1)prt("Achinese.");//(4)}Chinese(Stringname){super(name);//调用父类具有相同形参的构造函数(2)prt("hisnameis:"+name);}Chinese(Stringname,intage){this(name);//调用当前具有相同形参的构造函数(3)prt("hisageis:"+age);}publicstaticvoidmain(String[]args){Chinesecn=newChinese();cn=newChinese("kevin");c

8、n=newChinese("kevin",22);}} 结果为:APerson.Achinese.Apersonnameis:kevinhisnameis:kevinAperso

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。