黑马程序员技术交流社区

标题: 抽象类可继承实体类吗 [打印本页]

作者: wangleixhlm    时间: 2014-5-28 23:07
标题: 抽象类可继承实体类吗
本帖最后由 wangleixhlm 于 2014-5-30 18:24 编辑

抽象类可以继承实体类,但前提是实体类必须有明确的构造函数
这句话是什么意思?
作者: 黑马粉、峥    时间: 2014-5-28 23:17
1.抽象类也有构造函数,只是,这个构造函数是给子类提供的。所以如果抽象类继承其他类,那么抽象类的构造函数也会使用super语句,所以被继承类也必须有对外提供的构造函数
作者: 13556793092    时间: 2014-5-28 23:31
抽象类可以继承实体类,完全没问题,因为所有类都有父类Object,Object为实体类。
作者: 13556793092    时间: 2014-5-28 23:33
只要是继承关系,父类都必须有明确的构造函数。
不然子类中的的构造函数的super()语句会有问题
作者: 赵文豪    时间: 2014-5-28 23:46
凡是抽象类,就一定会是某个类的父类!否则,这个抽象类的存在没有意义,因为抽象类不能被实例化。既然抽象类一定是某一个类的父类,所以,这个抽象类一定要有构造函数!
作者: 葛晓东    时间: 2014-5-29 00:02
抽象类可以继承实体类,但是和实体类的继承一样,也要求父类可继承,并且拥有子类可访问到的构造器。
1.
所有的class都必须有一个构造方法,如果你没有在代码里声明构造方法,系统会自动给你生成一个公有无参的构造方法。而只要你自己声明了一个构造方法,无论有参无参,私有公有,系统就不再帮你生成默认无参构造器了。
2.
所有的子类构造器都要求在第一行代码中调用父类构造器,如果不写,系统默认去调用父类的无参构造器。
作者: lin'    时间: 2014-5-29 08:48
抽象类可以继承实体类,就是说可以用实体类里面的属性和方法,实体类必须有明确的构造函数是说,比如你创建一个实体类Student s=new Student("小明");必须要给对象具体赋值才能创建,不能创建空的
作者: EDDY_Liang    时间: 2014-5-29 09:57
赵文豪 发表于 2014-5-28 23:46
凡是抽象类,就一定会是某个类的父类!否则,这个抽象类的存在没有意义,因为抽象类不能被实例化。既然抽象 ...

类肯定是有构造函数的,
不过一定不一定是空参数是依需求把。





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