您的位置:首页 > 编程语言 > Java开发

第2章 Java编程基础——FAQ2.05 super关键字有什么含义?在哪些情况下应用?

2010-01-16 02:18 821 查看
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)。因为编译器不检查它是否处理或引发了这些异常。

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐