java的三大特性之一重写

来源:互联网 发布:java开发在公司任务 编辑:程序博客网 时间:2024/06/06 01:23

方法的重写:

1、在子类中可以根据需要对从基类中继承来的方法进行重写。

2、重写的方法和被重写的方法必须具有相同方法名称、参数列表和返回类型。(注:返回值可以为父类中返回值的子类型.参数若为子类,则不是重写是重载)

3、重写方法不能使用比被重写的方法更严格的访问权限。

4. 重写方法不能声明抛出比被重写方法范围更大的异常类型。

总结:重写是子类对所继承父类相同方法的一种更改,这个更改需要遵循格式按照父类的格式,访问权限,抛出异常等等,都在父类方法控制范围内,内部具体实现可以实现不同的效果。

 

通俗一点来说:重写就是对父类的的同一个方法的改写,但是别人怎么知道你这是重写,不是添加的新方法?这就要求格式必须跟父类相同,别人一看,呀,他俩长的一模一样(指的上面2,3,4规则),肯定是重新写了,就是重写。

 

father.java

package chongxie;public class father {   void eat(){       System.out.println("父亲吃了");         }}

son.java

package chongxie;public class son extends father{    void eat() {     System.out.println("儿子吃了");     }}

chongxie.java

package chongxie;public class chongxie {   public static void main(String[] args) {    father father= new father();    son son = new son();    father.eat();    son.eat();    }}

image

这时子类调用的是自己的方法,这就是重写了。

 

下面更改一下子类的方法名

son.java

package chongxie;public class son extends father{    void walk() {     System.out.println("儿子吃了");     }}

在主函数继续调用eat函数

chongxie.java

package chongxie;public class chongxie {   public static void main(String[] args) {    father father= new father();    son son = new son();    father.eat();    son.eat();    }}

image这时结果变了,调用的是父类的方法。

 

 

对于为什么要重写?

重写的话,也能实现代码的多样性。

子类继承了父类之后,调用父类的方法,就不需要重复写,节省代码量。

如果使用条件变更,父类的方法不能满足使用需求,那么你就需要重写方法了,把父类的方法覆盖掉。

 

接下来可以仔细学习一下多态,也能加深对重写的理解

原创粉丝点击