1、方法的重写:(overridi ng)
什么是方法的重写
一句话总结,方法重写针对的是继承关系中子类对父类的方法进行了继承,返回值和参数列表都相同,说白了就是壳相同,核心不同,我子类跟父类中被重写的方法返回值,参数列表都一样,但是方法中的代码不一样,这样的好处就是子类可以根据自己的需要去定义属于子类自己的行为,特别注意的是,重写的方法不能抛出新的检查异常或者说不能抛出比父类中被重写的方法更宽泛的异常,比如我的父类写一个方法的时候申明了一个检查异常,IOException,那我子类重写这个方法的时候就不能抛出Exception异常,因为Exception异常是IOException的父类,只能抛出IOException的子类异常
方法重写的特性
1.参数列表,返回值类型必须跟父类中的方法相同。
2.访问权限不能比父类中被重写的方法权限低,举个例子,如果一个父类的方法被声明为public,那么子类中重写该方法就不能声明为protected。
3.声明为final的方法不能被重写,声明为static的方法也不能被重写,但是能够再次声明,也就是说你再定义一个static的方法就可以了。
4.异常的问题。
5.构造方法不能被重写。
6.父类的成员方法只能被他的子类重写,也就是说如果不能继承一个方法,则不能重写这个方法。
2、方法的重载:(overloading)
什么是方法的重载
在一个类中,方法名字相同而参数列表不同,返回值的类型可以相同也可以不同,要注意的是每一个重载的方法的参数列表必须不同,最常见的就是构造方法,有参的无参的构造方法,自行脑补一下
方法重载的特性
1.方法的重载 在一个类中,方法名字相同而参数列表不同,返回值的类型可以相同也可以不同。
2.被重载的方法可以声明新的或者更广的异常。
3.方法可以在一个类中或者一个子类中被重载。
其实方法的重载和重写就是java的多态的一种表现,重写是父类跟子类之间多态的一种表现,重载是一个类多态的具体表现。