黑马程序员---5、Super关键字
来源:互联网 发布:淘宝商品照片拍摄价格 编辑:程序博客网 时间:2024/05/22 08:22
Super关键字
1、用super操作被隐藏的成员变量,那么子类创建的对象就不在拥有该变量,该变量将归关键字super所拥有,同样子类一旦隐藏了继承的方法,那么子类创建的对象就不能调用被隐藏的方法,该方法的调用由关键字super负责。因此,如果在子类中想使用被子类隐藏的成员变量或方法需要使用关键字super。比如super.x、super.play()就是访问和调用被子类隐藏的成员变量x和方法play()。
下面举个例子说明,子类使用super访问和调用被子类隐藏的成员变量和方法。
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 Example2 {
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);
}
}
运行结果:
2、使用super调用父类的构造方法
当用子类的构造方法创建一个子类的对象时,子类的构造方法总是先调用父类的某个构造方法,也就是说,如果子类的构造方法没有明显的指明使用父类的那个构造方法,子类就调用父类的不带参数的构造方法。
由于子类不继承父类的构造方法,因此,子类在其构造方法中需使用super关键字来调用父类的构造方法,而且super必须是子类构造方法中的头一条语句,即如果在子类的构造方法中,没有明显的写出super关键字来调用父类的某个构造方法,那么默认的有:super();
举例说明:UniverStudent是Student的子类,UniverStudent子类构造方法中使用super关键字,
class Student{
int number;
String name;
Student(){
}
Student(int number,String name){
this.name=name;
this.number=number;
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 Example2_1 {
public static void main(String[] args) {
UniverStudent zhnag=new UniverStudent(1234,"张三",false);
}
}
运行结果:
如果类里定义了一个或多个构造方法,那么java不提供默认的构造方法(不带参数的构造方法),因此,当在父类中定义多个构造方法时,应当包括一个不带参数的构造方法,以防子类省略super时出现错误。
- 黑马程序员---5、Super关键字
- 12.黑马程序员-this、super关键字
- 黑马程序员_04 super,this,static关键字
- 黑马程序员-super和this关键字
- 黑马程序员--this和super关键字
- 黑马程序员---关于super和self关键字
- 黑马程序员-day05-面向对象(this关键字和super关键字)
- 黑马程序员 JAVASE——this.super关键字用法小结
- 黑马程序员-- 二、this、super、final和static关键字
- 黑马程序员_Java基础_this,super,static,final关键字
- 05.黑马程序员-继承、super关键字和多态
- 黑马程序员-OC语言中的两个关键字self和super
- 黑马程序员——Java基础---this和super关键字
- 黑马程序员--java基础--关键字this和super
- 黑马程序员-OC语言-self和super关键字(听课笔记)
- 黑马程序员——组合与super关键字
- 黑马程序员_JavaSe基础知识总结六:super、final关键字
- 黑马程序员-OC语言-关键字self与super
- ubuntu下vi不能正常使用的解决方法
- dom4j递归遍历
- Java操作Hbase进行建表、删表以及对数据进行增删改查,条件查询
- c函数调用过程原理及函数栈帧分析
- 怎么看linux服务器是否装了jdk
- 黑马程序员---5、Super关键字
- HDU 4616
- MyEclipse 10 集成 jad
- ARM_Linux下光盘刻录方案之cdrecord的交叉编译
- html4与html5的区别
- (转)基于cocos2d-x引擎的游戏框架设计
- HDU 3068 最长回文(manacher O(n)求回文算法)
- redhat安装中文出现乱码
- PowerDesigner将pdm数据库表导出到word表格中