super关键字
2019-10-25 06:36:42来源:博客园 阅读 ()
super关键字
` 一.用super操作被隐藏的成员变量和方法
子类一旦隐藏了继承的成员变量,那么子类创建的对象就不再拥有该变量,该变量将归关键字super所拥有,同样子类一旦隐藏了继承的方法,那么子类创建的对象就不能调用被隐藏的方法,该方法的调用由关键字super负责。下面的例一中,子类使用super访问和调用被子类隐藏的成员变量和方法。
例一:
package superGuanjianzi; class Sum { int n; float f() { float sum=0; for(int i=1;i<=n;i++){ sum=sum+i; } return sum; } } class Average extends Sum{ int n; float f() { float c; super.n=n; c=super.f(); return c/n; } float g() { float c; c=super.f(); return c/2; } } public class Liyi { public static void main(String[] args) { Average aver=new Average(); aver.n=100; float resultOne=aver.f(); float resultTwo=aver.g(); System.out.println("resultOne="+resultOne); System.out.println("resultTwo="+resultTwo); } }
运行结果如下:
resultOne=50.5
resultTwo=2525.0
若将例一中的Liyi类中的代码
float resultOne=aver.f(); float resultTwo=aver.g();
更改次序为:
float resultTwo=aver.g(); float resultOne=aver.f();
程序的输出结果为:
resultOne=50.5
resultTwo=0.0
二.使用super调用父类的构造方法
当用子类的构造方法创建一个子类的对象时,子类的构造方法总是先调用父类的某个构造方法,也就是説,如果子类的构造方法没有明显的指明使用父类的哪个构造方法,子类就调用父类的不带参数的构造方法。
由于子类不继承父亲的构造方法,因此,子类在其构造方法中需使用super来调用父亲的构造方法,而且super必须是子类构造方法中的头一条语句,即如果在子类的构造方法中,没有明显地写出super关键字来调用父类的某个构造方法,那么默认的有:
super();
在下面的例子中UniverStudent是Student的子类,UniverStudent子类在构造方法中使用了super关键字。
例二:
package superGuanjianzi; class Student{ int number; String name; Student(){ } Student(int number,String name){ this.number=number; this.name=name; System.out.println("我的名字是"+name+",学号是:"+number); } } class UniverStudent extends Student{ boolean 婚否; UniverStudent(int number,String name,boolean b){ super(number,name); 婚否=b; System.out.println("婚否="+婚否); } } public class Lier { public static void main(String[] args) { //UniverStudent zhang=new UniverStudent(9901,"何晓林",false); new UniverStudent(9901,"何晓林",false); } }
原文链接:https://www.cnblogs.com/liyajuan333/p/11686219.html
如有疑问请与原作者联系
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇:MySQL,必须掌握的6个知识点
下一篇:Java泛型总结
- 构造函数中的this()和super() 2020-06-10
- 面试官:兄弟,说说Java的static关键字吧 2020-06-04
- Java并发编程volatile关键字 2020-05-24
- 技术大佬:我去,你竟然还不会用 this 关键字 2020-05-24
- 抽象类与接口 2020-05-13
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash