黑马程序员技术交流社区
标题:
方法重载和重写的区别.
[打印本页]
作者:
安生安徒生
时间:
2016-7-2 23:29
标题:
方法重载和重写的区别.
Overload和Override的区别。Overloaded的方法是否可以改变返回值的类型?
答:方法的重写Overriding和重载Overloading是Java多态性的不同表现。重写Overriding是父类与子类之间多态性的一种表现,重载Overloading是一个类中多态性的一种表现。如果在子类中定义某方法与其父类有相同的名称和参数,我们说该方法被重写 (Overriding)。子类的对象使用这个方法时,将调用子类中的定义,对它而言,父类中的定义如同被“屏蔽”了。如果在一个类中定义了多个同名的方法,它们或有不同的参数个数或有不同的参数类型,则称为方法的重载(Overloading)。Overloaded的方法是可以改变返回值的类型。
作者:
huizhong
时间:
2016-7-2 23:53
方法的重载 方法名相同与返回值无关,参数类型不同( 1参数个数,2参数类型和3参数顺序)参数顺序不同和原方法基本是一样所以编程时一般是不写的
作者:
123-music-on
时间:
2016-7-3 00:20
顶一个!
作者:
他的好
时间:
2016-7-3 01:26
顶一个
作者:
天之骄子no1
时间:
2016-7-3 08:12
简单点说,重载是在同一个类中,方法名相同,参数不同(参数个数、类型、顺序不同),与方法的返回值无关。
重写发生在继承关系中,子类的方法和父类的方法一样,只是方法体不一样
作者:
唱情歌的神父
时间:
2016-7-3 08:14
学习了~~~~~虽然知道是水贴
作者:
weidong10heima
时间:
2016-7-3 22:51
(1)重载:在同一个类中,方法名相同、参数列表不同(数量不同、类型不同、顺序不同)、与返回值类型无关的多个方法构成重载
(2)重写:在继承中,子父类出现了一模一样的方法(注意:返回值类型可以是子父类,这个我们学完面向对象讲) ,当子类需要父类的功能,
而功能主体子类有自己特有内容时,可以重写父类中的方法。这样,即沿袭了父类的功能,又定义了子类特有的内容
(3)重写的注意事项:
a.父类中私有方法不能被重写,因为父类私有方法子类根本就无法继承,既然子类无法继承,就谈不上重写了
b.子类重写父类方法时,访问权限不能更低,最好就一致
c.父类静态方法,子类也必须通过静态方法进行重写
* 其实这个算不上方法重写,但是现象确实如此,至于为什么算不上方法重写,多态中我会讲解(静态只能覆盖静态)
d.子类重写父类方法的时候,最好声明一模一样。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2