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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 白倩 黑马帝   /  2011-11-3 10:04  /  2430 人查看  /  13 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

今儿同学问我一小问题,看看大家知道不!
构造函数是否可以被override?

评分

参与人数 1技术分 +1 收起 理由
admin + 1

查看全部评分

13 个回复

倒序浏览
不可以的....override是用来重写父类中的方法或者重写本类和object的toString()方法。

评分

参与人数 1技术分 +1 收起 理由
宁超 + 1 抢答呢哈。

查看全部评分

回复 使用道具 举报
沙铁健 发表于 2011-11-3 10:11
不可以的....override是用来重写父类中的方法或者重写本类和object的toString()方法。 ...

抢答 什么啊....    刚吃完饭 起来    发布个项目  逛逛论坛.
回复 使用道具 举报
构造函数被重载(overload),不能被重写的
回复 使用道具 举报
沙铁健 发表于 2011-11-3 10:11
不可以的....override是用来重写父类中的方法或者重写本类和object的toString()方法。 ...

什么项目哈?
回复 使用道具 举报
宁超 发表于 2011-11-3 10:25
什么项目哈?

c#的winform+access
回复 使用道具 举报
杨玉揆 黑马帝 2011-11-3 10:51:32
7#
override 用的范围是 存在于继承关系的类中
回复 使用道具 举报
张晨 黑马帝 2011-11-3 15:03:34
8#
构造函数无法被覆盖,继承父类后,子类需要调用父类的构造函数,并且需要实现父类的构造函数
回复 使用道具 举报
葛雨龙 黑马帝 2011-11-3 15:16:53
9#
必然不可以啊,这构造函数名和类名一样,如何覆盖父类的
回复 使用道具 举报
张邦庆 发表于 2011-11-3 10:22
构造函数被重载(overload),不能被重写的

补充一点,每个类都有默认的无参构造函数(不写出code也存在),但如果该无参构造函数被重载,而类中又没写出无参构造函数的code , 则该类的无参构造函数不能使用。

评分

参与人数 1技术分 +1 收起 理由
admin + 1

查看全部评分

回复 使用道具 举报
子类不能重写父类的构造器,但可以通过super来调用父类的构造器。
比如:
public class Sub extends Basic
{
        .......
        public Sub(String name,double size,String color)
        {
                super(name,size);
                this.color=color;
        }
        .......
}

评分

参与人数 1技术分 +1 收起 理由
admin + 1 赞一个!

查看全部评分

回复 使用道具 举报
每个类都有自己的构造函数,不可以被覆盖。但是子类可以用super来调用父类的构造函数
回复 使用道具 举报
当建立一个类时,如果你不写构造方法,程序会给我们提供一个默认的无参构造方法,当你写一个有参方法是,如果你不写无参构造方法就没有了,不能被使用。当子类继承父类时,如果不写构造方法,它会用默认的构造方法调用父类的无参构造方法,如果你在子类中写一个有参构造方法,你必须指定调用父类的那个构造方法
回复 使用道具 举报
laoyang 黑马帝 2011-11-8 11:46:00
14#
可以重载
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马