当前位置: 技术问答>java相关
有关Java构造函数的问题之二——实例性
来源: 互联网 发布时间:2015-02-11
本文导语: Java的构造函数是用来实例化一个类的。那么对abstract类(不能被实例化的类)允许存在构造函数吗?如果允许存在,那么有什么意义呢? | 允许啊!抽象类的所有数据和方法不一定都不需要实...
Java的构造函数是用来实例化一个类的。那么对abstract类(不能被实例化的类)允许存在构造函数吗?如果允许存在,那么有什么意义呢?
|
允许啊!抽象类的所有数据和方法不一定都不需要实例化啊!抽象类的构造方法可以完成必要的初始化!它的子类就可以直接调用父类的构造函数了,然后再完成自己扩展的初始化啊,而且你的说法也不对啊,抽象类不是不能被实例化的类,而是不能“直接”实例化的类。还是给一个例子:
class test0{
public test0() {
System.out.println("test0");
}
}
abstract class test1 extends test0{
String ex1;
public test1() {
super();
ex1="ex1";
System.out.println("test1");
}
}
public class test extends test1{
String ex2;
public test() {
super();
ex2="ex2";
System.out.println("test");
}
public static void main(String args[]) {
test1 t=new test();
}
}
class test0{
public test0() {
System.out.println("test0");
}
}
abstract class test1 extends test0{
String ex1;
public test1() {
super();
ex1="ex1";
System.out.println("test1");
}
}
public class test extends test1{
String ex2;
public test() {
super();
ex2="ex2";
System.out.println("test");
}
public static void main(String args[]) {
test1 t=new test();
}
}
|
对于abstract类而言,并非所有方法都是抽象的。它可以有实在的数据和方法。
比如说消息这个抽象类,总有一个发送者,这个发送者是实际存在的,在消息的构造函数中就可以指定发送者,对吧?不管以后它的子类如何extends,总之都会有一个发送者的,因为是父类定义好了的,在子类的构造函数中super时就可以调用了。
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。