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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© zbgl 中级黑马   /  2013-11-19 17:40  /  965 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

构造器Constructor是否可被override?是否可以继承String类?

2 个回复

倒序浏览
构造器Constructor不能被继承,因此不能重写Override,但可以被重载Overload
构造器是一个创建对象时被自动调用的特殊方法,为的是初始化。构造器的名称应与类的名称一致。
       当创建一个个对象时,系统会该对象的属性默认初始化,基本类型属性的值为0(数值类型),false(布尔类型),把所有的引用类型设置为null.
       构造器可以改变这种默认的初始化。
       构造器的作用:是创建java对象的重要途径,是不是说构造器完全负责创建java对象?
       答:是创建java对象的重要途径,通过new关键字调用构造器时,构造器也确实返回了该类的对象,但这个对象并不是完全由构造器负责创建的。
        首先要注意的是Java的构造器并不是函数,所以他并不能被继承,这在我们extends的时候写子类的构造器时比较的常见,即使子类构造器参数和父类的完全一样,我们也要写super就是因为这个原因。

  构造器的修饰符比较的有限,仅仅只有public private protected这三个,其他的例如任何修饰符都不能对其使用,也就是说构造器不允许被成名成抽象、同步、静态等等访问限制以外的形式。

  因为构造器不是函数,所以它是没有返回值的,也不允许有返回值。但是这里要说明一下,构造器中允许存在return语句,但是return什么都不返回,如果你指定了返回值,虽然编译器不会报出任何错误,但是JVM会认为他是一个与构造器同名的函数罢了,这样就会出现一些莫名其妙的无法找到构造器的错误,这里是要加倍注意的。

评分

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

查看全部评分

回复 使用道具 举报
1.构造器Construtctor不能被继承,因此不能被重写Override,但可以被重载overload;
2.String类是final类,故不可以被继承,只能使用。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马