黑马程序员技术交流社区

标题: 最近在学习覆盖,想问一下,构造器Constructor是否可被overri... [打印本页]

作者: 最好的诠释    时间: 2013-4-14 00:41
标题: 最近在学习覆盖,想问一下,构造器Constructor是否可被overri...
最近在学习覆盖,想问一下,构造器Constructor是否可被override吗?
作者: 崔宝东    时间: 2013-4-14 00:44
构造器Constructor是不能被继承的,因此不能重写override;但是可以被重载;
作者: 最好的诠释    时间: 2013-4-14 00:48
崔宝东 发表于 2013-4-14 00:44
构造器Constructor是不能被继承的,因此不能重写override;但是可以被重载;

谢谢了。
作者: 王洪宇    时间: 2013-4-14 10:49
Override的意思是重写:
这个概念出现在继承里,子类继承父类时,如果有需要,则需要重写父类的方法。

重写的原则之一:方法名相同,形参列表相同,不然不叫重写。

写构造器的原则:(构造器也叫构造函数、构造方法,是一种特殊格式的函数)
         即方法名与类名相同。

如果你在子类中重写了父类的构造器,那么子类中就会出现这样一个四不像的东西:
      1.没有返回值:构造器是没有返回值的,所以这个东西有可能是一个构造器?
      2.方法名与类名不相同:因为构造器的名必须与类名相同,那么这个东西就不是一个构造器。
那是什么东西?
      是一种不存在的东西,编译时是不会通过的。

综上所述:构造器不能被重写,即不能继承。但是子类在实例化时会访问父类的构造器。
作者: 黄玉昆    时间: 2013-4-14 14:09
如果问题未解决,请继续追问,如果没有问题了,请将帖子分类 改为“已解决”,谢谢




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