Java学习笔记(Java中的重写)

一、概述

    当子类需要父类的功能,而子类有新的内容,可以重写父类中的方法。在实际开发过程中,随着代码量的逐渐增加,维护成了一个很大的问题,如果需要对某个方法进行修改,其本身代码以及其子类代码都会受到影响,而重写则很好的解决了这个问题。方法重写又称为方法覆盖、方法复写。

方法重写特点

    在子类和父类中,出现了方法声明相同的情况

    子类的方法声明要和父类相同

    子类要重写的方法,方法的权限修饰符不能比父类更低(public 、protected  、default  、private 权限依次增加)

    父类私有的方法,子类不能进行方法重写

方法重写和方法重载的区别:

    方法重写:子类和父类中方法相同,两个类之间的关系,函数的返回值类型、函数名、参数列表都一样

    方法重载:指在同一个类中,多个方法名相同,他们的参数列表不同(个数不同,数据类型不同)

二、代码实例

先创建Person.java父类

package Rewrite;

public class Person {

    public void eat()

    {

        System.out.println("吃饭!");

    }

    public void work()

    {

        System.out.println("工作!");

    }

    public void sleep()

    {

        System.out.println("睡觉!");

    }

}

再创建Student.java子类

package Rewrite;

/*

Student子类继承Person父类,并对父类的work()方法进行重写

*/

public class Student extends Person {

    public void work()

    {

        super.work();      //使用super关键字调用父类方法

        System.out.println("学习!");

        System.out.println("娱乐!");

    }

}

在Main.java中调用

package Rewrite;

public class Main {

    public static void main(String[] args)

    {

        Person per = new Person();      //创建父类对象

        per.eat();

        per.work();

        per.sleep();

        Student stu = new Student();        //创建子类对象

        stu.work();

    }

}

实例分析:

    在Person父类中定义了三个方法,在子类中对work()方法进行重写

    重写时函数的返回值类型、函数名、参数列表都一样

    在子类中可以使用super关键字调用父类方法

你可能感兴趣的:(Java学习笔记(Java中的重写))