FAQ2.05 super关键字有什么含义?在哪些情况下应用?
答:
我们继续Google以下。。。。
****************************************************************************************************************************************
super有两种用法:
其一:在构造方法内使用
如下:
public class a extends b{
public a (int t){
super(t);
}
}
其二:在其它非构造方法中使用
如下:
public class a extends b{
public a(){}
public print(String a){
super.print(a);
}
}
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1.表示父类
2.调取父类成员
3.作为方法名表示父类构造方法
4.子类对象的创建:沿继承链调用父类的构造方法
例如:
public class Employee{
private String name;
privarte int age;
public String getDetails(){
return “name:”+name+”\nAge:”+age;
}
}
public class Manager extends Employee{
private String getDetails(){
//call parent method
return super.getDetails()+”\nDeparment:”+department;
}
}
///////////////////////////////////////////////////////////////////////////////
public class Manage extends Employee{
private String department;
public Manage(String name,int age;String dept){
super(name,age);
department=dept;
}
public Manage(String n,String dept){
super(name);
department=dept;
}
public Manage(String dept){ //This code fails:no super()
department=dept;
}
}
________________________________________________________________________________________________________________________________________
super.xxx用于在子类中调用与父类重名的属性。或者是被子类重写的方法。
super()是在子类中调用父类的构造方法。每个子类构造方法第一行,必须是这样调用。因为若想实例化子类对象,则必须先实例化其父类对象。
super是调用父类的构造函数
使用super调用有一些限制条件,不能在super调用中使用实例变量作为参数,而且在构造函数中,调用必须写在继承类的构造函数定义的第一行,不能在构造函数的后面使用。
this是调用的同类的构造函数。
super的限制条件同样适用于this函数。
一个构造函数定义中不能同时包含this调用和super调用,如果想同时包括的话,可以在this中首先进行super调用。
————————————————————————————————————————————————————————————————————————————————————————
成员函数中定义了和成员变量中相同的变量时,引用成员变量要用this。
构造函数中调用同一个类的其他构造函数时用this。
子类中覆盖了与父类成员变量或成员函数时,在子类中调用父类的变量或函数时要用super
子类的构造函数里调用父类的构造函数用super
包(package)是类的容器,用来保存划分的类名空间。
创建一个包是很简单的:只要包含一个package命令作为一个人Java源文件的第一句就可以了。该文件中定义的任何类将属于指定的包。
下面是package声名的一般形式:
package pkg;
接口是用来实现类间多重继承功能的,他将完成特定功能的若干属性组织成相对独立的属性集合,该属性集合就是接口。接口的定义仅仅是实现某一特定功能的对外接口和规范,而并没有真正实现这个功能。真正实现在继承这个接口的各个类中完成,因此通常把接口功能的继承成为”实现“。
异常是指程序在运行过程中的不正常情况。Java的异常处理机制则避免了这些问题,而且在处理过程中,把对运行时对错误的处理以面向对象的方式解决。在标准包java.lang中,Java定义了若干个异常类。前面的例子曾用到其中一些,这些异常一般是标准类RuntimeException的子类。因为java.lang实际上被所有的java程序引用。而且,他们不需要被包含在任何方法的throws列表中。Java语言中,这被叫做未经检查的异常(unchecked exception)。因为编译器不检查它是否处理或引发了这些异常。
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++