论坛首页 入门技术论坛

java中的构造函数

浏览 2559 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2007-09-16   最后修改:2010-06-16

构造函数是类的一个特殊方法,这个方法用来生成实例时由系统自动调用,程序员无法直接调用。构造函数方法名同类名相同且参数为空。子类继承父类后默认继承父类的构造函数,即:子类存在隐含方法:super(),如果子类重写构造函数则子类也隐含调用super()。
如下例:

例一:
package sample;
public class A{
 A(){
 System.out.println("主类构造函数调用");
 }
 public static void main(String args[]){
  A g=new A();  
  subA s=new subA();  
 }
  
}
class subA extends A{
 
}
执行结果为:
主类构造函数调用
主类构造函数调用
本例中子类subA中没有任何方法,所以隐含调用super(),super()指向A()。
例二:
package sample;
public class A{
 A(){
 System.out.println("主类构造函数调用");
 }
 public static void main(String args[]){
  A g=new A();  
  subA s=new subA();  
 }
  
}
class subA extends A{
 public subA(){
 }
}
执行结果为:
主类构造函数调用
主类构造函数调用
本例中子类subA只有一个空方法suba()中没有任何方法,所以也隐含调用super(),super()指向A()。
例三:
package sample;
public class A{
 A(){
 System.out.println("主类构造函数调用");
 }
 public static void main(String args[]){
  A g=new A();  
  subA s=new subA();  
 }
  
}
class subA extends A{
 public subA(){
  System.out.println("子类构造函数调用");
 }
}
执行结果为:
主类构造函数调用
主类构造函数调用
子类构造函数调用
本例中子类subA的方法subA()虽然后输出但同上例中相同都为构造函数,所以也隐含调用super(),super()指向A()。

论坛首页 入门技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics