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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

chenweizuo

中级黑马

  • 黑马币:

  • 帖子:

  • 精华:

© chenweizuo 中级黑马   /  2014-11-17 19:41  /  1467 人查看  /  9 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

覆盖也叫重写,重写一定要在继承中吗?在其他方面不行吗?

9 个回复

倒序浏览
不是继承中的方法,他们没有关系吧,只能是重新定义,而不是重写。而在继承中父类的方法,在子类中是存在的,你在定义一个肯定会覆盖上面一个,不可能同事存在两个一模一样的。
回复 使用道具 举报
必须存在继承关系吧,要不怎么体现"重"字呢?:D
回复 使用道具 举报
不在继承中  应该就是重新赋值了,没有重写一说。
顺便提下 有个面试题是这样的,Overload 和 Override的区别

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

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