黑马程序员技术交流社区

标题: 抽象类中是否有构造函数? [打印本页]

作者: 张慈瑞    时间: 2014-7-10 10:58
标题: 抽象类中是否有构造函数?
刚才看毕老师的PPT的时候看到的,知道的大家给回答一下。
作者: Adjin    时间: 2014-7-10 11:13
抽象类中有构造方法,没有的话系统默认给你加上
作者: 渴望学习    时间: 2014-7-10 11:15
抽象类中必须有构造函数,因为抽象类需要子类继承,子类创建对象的时候会默认调用父类的无参数构造函数。接口中是没有构造函数的
作者: 汉谟拉比    时间: 2014-7-10 11:17
抽象类中有构造方法,接口中没有构造方法
作者: 歸羽    时间: 2014-7-10 11:55
抽象类中是需要有构造函数的。虽然抽象类本身不能创建对象。但是继承抽象的子类并复写所以的抽象方法之后是可以实例化的。我们知道实例化对象需要有构造函数对对象进行初始化。这时候就调用到了子类的构造函数。子类的构造函数中有个隐式语句super();它会在子类的构造函数运行前去调用父类的构造函数。在抽象类中,因为子类与父类是继承关系。子类对象继承父类的成员属性和方法。当子类对象初始化的时候会查看父类是如何初始化父类成员的。然后再 完成对子类的初始化。这个关系在抽象类中也适用。
所以,抽象类中是有构造函数的,作用是为了给子类对象初始化。~子类可以super();调用父类的构造函数~这是我个人的理解。
作者: 646245771    时间: 2014-7-10 12:04
必须有啊。。。要不怎么给对象初始化啊。
作者: 暗影流光    时间: 2014-7-10 12:09
有的。。。。
作者: doubandddk    时间: 2014-7-10 12:35
是类就有,你不写jvm也会给你隐式的给你加一个无参的构造方法
作者: 晴儿    时间: 2014-7-10 12:38
抽象类可以有构造方法,构造方法不可继承,但是可以供子类用super()或者super(参数,参数。。。。)调用。






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