A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 张综 中级黑马   /  2012-11-11 21:08  /  7450 人查看  /  11 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

抽象类可不可以有构造器啊?

点评

基础性问题多看看资料 。  发表于 2012-11-12 15:19

11 个回复

倒序浏览
可以            
回复 使用道具 举报
可以的啊
抽象类的定义是类中至少有一个方法是抽象的,就这样啊
其他的构造器之类的,或是具体方法的,你都可以写的
回复 使用道具 举报
刘丽娜 发表于 2012-11-11 21:28
可以的啊
抽象类的定义是类中至少有一个方法是抽象的,就这样啊
其他的构造器之类的,或是具体方法的,你都 ...

抽象类一定要有抽象方法吗?貌似不是呢????
那你看看这个抽象类:
public abstract class Person {

}
它成立么?
回复 使用道具 举报
应该这样说,有抽象方法的必须是抽象类,而抽象类可以没有抽象方法
回复 使用道具 举报
先说说构造器的规则:
1。如果一个类没有设置字定义构造器,那么编译器会默认一个无参构造器。
2。在子类调用构造器时,总是先调用基类的构造器。
3。如果自定义了构造器,那么默认构造器将不存在。
抽象类是含有抽象方法的类,他可以有自己的成员变量,可以利用构造器在创建子类对象的时候,给子类里的成员变量赋值。只不过是隐藏的构造器。
回复 使用道具 举报
抽象类是否可以有构造器:
构造器是用来干什么的?与new使用创建实例对象!
抽象类不能创建实例对象,那么它有构造器有没有用?
有用!什么用:子类是不是需要调用父类构造器?需要,那么也就是说抽象类可以有构造器,而构造器是给子类构造器来用的!
回复 使用道具 举报
深井似海说的很正确啊,从这点来说很通透啊,构造器是用来进行对象初始化的,就是说你必须有对象,然后才会调用构造器,抽象类不能进行实例化,抽象类要使用,必须由子类覆写所有的抽象方法,建立子类对象调用,此抽象类中的构造器主要就是给子类构造器给使用的
回复 使用道具 举报
可以的,有抽象方法的必须是抽象类,而抽象类当中可以没有抽象方法
回复 使用道具 举报
刘菲 中级黑马 2012-11-12 14:42:45
10#
1..抽象类中一般都有抽象方法,但也有的抽象类中并没有抽象方法(这样做仅仅是不让该类创建对象)。
2.抽象类是不可以new对象的。在使用时需要子类覆盖其中的方法。
3.抽象类中是可以有构造器的。
子父类中的构造函数:
  子类中的所有构造函数,默认都会访问父类中空参数的构造函数,因为子类每一个构造函数的第一行都有一句隐式super();
   当父类中没有空参数的构造函数时,子类必须手动通过super语句形式来指定要访问父类中的构造函数。
  当然,子类的构造函数第一行也可以手动指定this语句来访问本类中的构造函数,
  子类中至少有一个构造函数会访问到父类中的构造函数。
以上是本人的一些理解,希望能够帮到你!

评分

参与人数 1技术分 +1 收起 理由
奋斗的青春 + 1 赞一个!

查看全部评分

回复 使用道具 举报
很有启发
回复 使用道具 举报
不是可以有,是必须有
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马