黑马程序员技术交流社区

标题: 重写 [打印本页]

作者: chenweizuo    时间: 2014-11-17 19:41
标题: 重写
覆盖也叫重写,重写一定要在继承中吗?在其他方面不行吗?
作者: wanmei0398    时间: 2014-11-17 20:43
不是继承中的方法,他们没有关系吧,只能是重新定义,而不是重写。而在继承中父类的方法,在子类中是存在的,你在定义一个肯定会覆盖上面一个,不可能同事存在两个一模一样的。
作者: DamonZh    时间: 2014-11-17 21:49
必须存在继承关系吧,要不怎么体现"重"字呢?:D
作者: 与梦逆风而行    时间: 2014-11-17 22:28
不在继承中  应该就是重新赋值了,没有重写一说。
顺便提下 有个面试题是这样的,Overload 和 Override的区别

Overload:重载
|- 在一个类中定义的若干方法
|- 所有的方法名相同,但参数类型或个数不同
|- 只有参数有关,与返回类型无关
Override:覆写
|- 在继承的关系中
|- 子类定义了父类同名的方法,参数类型或个数最好完全一样。
|- 访问权限不能更严格
作者: 天涯无痕    时间: 2014-11-17 23:25
目前所知。。。接口也可以啊      但是那个是实现
作者: 涉江    时间: 2014-11-18 10:22
与梦逆风而行 发表于 2014-11-17 22:28
不在继承中  应该就是重新赋值了,没有重写一说。
顺便提下 有个面试题是这样的,Overload 和 Override的区 ...

对,看中文翻译的时候,总是把 Overload 和 Override 搞混,英文就不会有这个问题。不过看楼主的意思应该是指的 Override 。
作者: 地瓜君    时间: 2014-11-20 19:50
父类与子类之间的多态性,对父类的函数进行重新定义。如果在子类中定义某方法与其父类有相同的名称和参数,我们说该方法被重写 (Overriding)。在Java中,子类可继承父类中的方法,而不需要重新编写相同的方法。但有时子类并不想原封不动地继承父类的方法,而是想作一定的修改,这就需要采用方法的重写。方法重写又称方法覆盖。若子类中的方法与父类中的某一方法具有相同的方法名、返回类型和参数表,则新方法将覆盖原有的方法。如需父类中原有的方法,可使用super关键字,该关键字引用了当前类的父类。子类函数的访问修饰权限不能少于父类的。
作者: kenhe    时间: 2014-11-20 19:56
必须在继承中才叫重写,因为子类中继承了父类的方法,而子类对此方法的方法体有其特有的处理形式,不同于父类,但方法名等都相同,这就叫重写。
作者: william_J    时间: 2014-11-20 20:23
我觉得重写就是和原来是一模一样的,除了方法体,如果没有继承关系的话,也就不叫重写了,只能说俩个类中都有这个方法,在语法上是没有毛病的,继承了以后,相当于一个类中有俩个同样的方法明,所以才会叫伟重写
作者: 丑小子799    时间: 2014-11-22 09:13
我感觉是,我还没有碰到在其他方面的




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