黑马程序员技术交流社区

标题: 关于抽象类 [打印本页]

作者: 黑马不黑    时间: 2014-1-12 09:10
标题: 关于抽象类
请问抽象类里面为什么可以写构造函数?既然是抽象类,就不能直接new 对象了,还要构造函数干嘛呢?


作者: 伍艳雄    时间: 2014-1-12 09:12
构造函数是给自己子类实例化的.....
作者: ↑↓ME→←    时间: 2014-1-12 09:27
抽象类当然可以有构造函数了,如果它没有的话,那么它的子类要初始化.如何调用父类的构造函数呢
每个类都必须要有构造函数,否则,它如何能被构造出来呢?   有构造函数 但是不能实例化,不能new出对象
作者: 贺利英    时间: 2014-1-12 09:30
因为构造函数的作用不仅仅是为了此类创建对象时用,而且也可以是子类创建对象时对成员的初始化作用,要知道抽象类也是可以被其他的类继承的,而子类的构造函数的第一行都有一句默认的super();即父类的空参数构造函数,如果父类有自己自定义的非空参数的构造函数,那么子类的构造函数的第一行也必须手动的写上相对应的super语句,进行去访问父类,以查看父类是如何进行初始化成员的,这个是必须有的,所以父类中是一定有构造函数的。并且要与接口区分开,接口是没有构造函数的,因为接口不能创建对象,并且接口中的函数都是没有方法体的,所以没有构造函数。
作者: xu6148152    时间: 2014-1-12 10:03
套用继承的概念。在JAVA当中也就是接口的概念。
继承时,子类实例化时,父类,子类的构造函数都会调用。因此父类的构造函数是必须的。
抽象类的构造函数的作用就在这里。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2