黑马程序员技术交流社区

标题: 方法的隐藏与覆盖的区别 [打印本页]

作者: 秦冲    时间: 2011-10-27 22:06
标题: 方法的隐藏与覆盖的区别
什么情况下构成覆盖,什么情况下构成隐藏。。
作者: 陆华山    时间: 2011-10-27 22:33
覆盖就是重写,子类重写父类的方法:三要素:还回值,类型,参数列表一样就构成覆盖
你说的隐藏是抽象方法吗 ,是不是指的没有方法体?
作者: 祁焱    时间: 2011-10-27 23:12
隐藏:子类重新定义了父类中的同名成员变量。被隐藏的父类成员变量在子类中仍然占有存储空间。
覆盖:子类重新定义了父类的同名成员方法,要求方法名、参数和返回类型都相同。与隐藏不同,此时子类方法将替换掉同名的父类方法,清除父类方法在子类中占有的空间。

作者: 杨强    时间: 2011-10-28 01:05
属性的隐藏是指实例变量和方法内部变量相同时,实例变量在该方法内会被隐藏,比如你在方法内直接输出变量,前面不加this,那么只会输出方法内那个变量的值。
方法的覆盖是指子类继承父类时,对父类的方法进行重写,要求返回类型,参数都要与父类一致,当然返回类型可以返回原来返回类型的子类。
一个是对变量而言一个是对方法而言,对于变量,你在方法内可以是任何的类型,和实例变量的类型没有关系。






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