JAVA技术专题综述之构造办法篇[Java编程]
本文“JAVA技术专题综述之构造办法篇[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
类的担当机制使得子类可以利用父类的功效(即代码),并且子类也具有父类的范例.下面介绍类在担当关系上的初始化的次序问题.
示例1:
class SuperClass
{
SuperClass()
{
System.out.println("SuperClass constructor");
}
}
public class SubClass extends SuperClass
{
SubClass()
{
System.out.println("SubClass constructor");
}
public static void main(String[] args)
{
SubClass sub = new SubClass();
}
}
输出后果: SuperClass
constructor
SubClass constructor
在子类中只实例化了一个子类对象.从输出后果上看,程序并非一开始就运行自己的构造办法,而是先运行其父类的默许构造办法.注意:程序自动调用其父类的默许构造办法.
示例2:
class SuperClass
{
SuperClass(String str)
{
System.out.println("Super with a string.");
}
}
public class SubClass extends SuperClass
{
SubClass(String str)
{
System.out.println("Sub with a string.");
}
public static void main(String[] args)
{
SubClass sub = new SubClass("sub");
}
}
在JDK下编译此程序不能成功.正如上例中说的:程序在初始化子类时先要探求其父类的默许构造办法,后果没找到,那么编译自然不能通过.
办理这个问题有两个办法:
1.在父类中增添一个默许构造办法.
2.在子类的构造办法中增添一条语句:super(str); 且必须在第一句.
这两种办法都能使此程序通过编译,但就本程序来说运行后果却不相同.
第1种办法的运行后果是:
Sub with a string.
第2种办法的运行后果是:
Super with a string.
Sub with a string.
第2种办理办法实际上是指定编译器不要探求父类的默许构造办法,而是去探求带一个字符串为参数的构造办法.
以上是“JAVA技术专题综述之构造办法篇[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |