黑马程序员技术交流社区
标题:
Super
[打印本页]
作者:
vipzh
时间:
2012-12-7 19:29
标题:
Super
在java里面super有用吗,怎么样使用它啊?
作者:
丁桂松
时间:
2012-12-7 19:51
在Java类中使用super来引用父类的成分
super可用于访问父类中定义的属性
super可用于调用父类中定义的成员方法
super可用于在子类构造方法中调用父类的构造方法
super的追溯不仅限于直接父类
public class Person {
private String name;
private int age;
public String getInfo() {
return "Name: " + name + "\nage: " + age;
}
}
public class Student extends Person {
private String school = "New Oriental";
public String getSchool(){ return school; }
public String getInfo() {
// 调用父类的方法
return super.getInfo() +"\nschool: " +school;
}
}
复制代码
作者:
邵新瑜
时间:
2012-12-7 19:56
在一般方法中
最普遍的情况就是,在你的方法中的某个形参名与当前对象的某个成员有相同的名字,这时为了不至于混淆,你便需要明确使用this关键字来指明你要使用某个成员,使用方法是“this.成员名”,而不带this的那个便是形参。另外,还可以用“this.方法名”来引用当前对象的某个方法,但这时this就不是必须的了,你可以直接用方法名来访问那个方法,编译器会知道你要调用的是那一个。
作者:
但汉涛
时间:
2012-12-7 20:12
(I)super关键字:super关键字与this关键字都可以实现将屏蔽的类成员为可见。
子类调用父类的构造方法时,super语句必须是子类构造方法的第一句。
(II)成员被屏蔽的情况
(1)在同一个类中,局部变量与成员变量同名时,局部变量在方法内可见。
(2)子类继承父类,子类中的某个方法覆盖了父类的方法,在子类中父类方法为不可见。
(3)在子类中定义了与父类同名的成员变量,在子类中父类的成员变量为不可见。
(III)访问父类成员语法:
super.<父类成员变量/方法>
(IV)访问父类构造方法语法:
super(参数)
作者:
马清泽
时间:
2012-12-8 15:49
class Programmer implements Cloneable{
private String name; //员工姓名
private int age; //员工年龄
private double salary; //员工工资
/*构造方法*/
Programmer(String name,int age,double salary) {
this.name=name;
this.age=age;
this.salary=salary;
}
public Object clone() throws CloneNotSupportedException{ //定义克隆方法
Programmer p=(Programmer)super.clone(); //确定要复制的对象
return p;
}
public static void main(String[] args) {
try {
Programmer p1=new Programmer("Kevin ",25,2000);
Programmer p2=(Programmer)p1.clone();
p2 .name=" Andy "; //修改p2的员工姓名
p2.age=28; //修改p2的员工年龄
p2.salary=3000; //修改p2的员工工资
System.out.println("name="+p1.name+",age="+p1.age+",salary="+p1.salary);
System.out.println("name="+p2.name+",age="+p2.age+",salary="+p2.salary);
} catch(CloneNotSupportedException e) {
System.out.println("CloneNotSupportedException异常"+e. getMessage());
e.printStackTrace();
}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2