0
点赞
收藏
分享

微信扫一扫

Java系列(14)——方法的重写与重载

一葉_code 2022-03-30 阅读 76


本系列博客汇总在这里:Java系列_汇总


目录

  • ​​一、重写​​
  • ​​二、重载​​
  • ​​四、重写和重载的区别​​

一、重写

  1. 在子类继承父类时,子类的方法和父类的方法相同(访问修饰限制符,返回值类型,方法名,参数列表),方法体不同的。这种子类的方法将父类的方法覆盖掉叫重写。所以外部创建子类调用该方法的时候一定是调用了子类的方法。
  2. 示例
  3. class Teacher
    {
    String name;
    int age;
    public void teachJava()
    {
    System.out.println("--------------------父类---------------------");
    System.out.println(name+"老师在教java");
    }
    public void sleep()
    {
    System.out.println("--------------------父类---------------------");
    System.out.println("刘老师在睡觉");
    }
    }
    //父类里的同名方法被覆盖,实现子类里的方法,这就是重写
    //可改变子类的方法名(不要与父类相同),再观察效果
    class JavaTeacher extends Teacher
    {
    public void teachJava()//与父类方法同名的方法
    {
    System.out.println("--------------------子类---------------------");
    System.out.println(name+"老师在教java");
    }
    public void sleep()//与父类方法同名的方法
    {
    System.out.println("--------------------子类---------------------");
    System.out.println("康老师在睡觉");
    }
    }
    class Welcome
    {
    public static void main (String[] args)
    {
    JavaTeacher jt = new JavaTeacher();
    jt.name = "刘成娟";
    jt.teachJava();//父类方法被覆盖
    jt.sleep();//父类方法被覆盖
    }
    }
  4. Java系列(14)——方法的重写与重载_子类

二、重载

  1. 示例
  2. class Welcome
    {
    public static void main(String[] args)
    {
    int a = 1;
    int b = 2;
    int c = 3;
    int result = compareNum(a,b,c);
    System.out.println("MAX:"+result);
    }

    //两个数比较大小
    public static int compareNum(int a,int b)
    {
    return a > b ? a : b;
    }

    //三个数比较大小
    public static int compareNum(int a,int b,int c)
    {
    return compareNum(a,b) > c ? compareNum(a,b):c;
    }
    }
  3. Java系列(14)——方法的重写与重载_重载与重写_02

四、重写和重载的区别

  1. 重写(override):在父子类的继承中有相同的方法,唯一不同的就是方法体。一般是父类的该方法满足不了子类的需求所以才发生重写。
  2. 重载(overload):重载是在同一个类中,有着相同的方法名,但是参数的数据类型或者参数的个数不同这两个方法就是重载,重载的目的:节省类中的命名资源和提高代码的可读性。

如有错误,欢迎指正!



举报

相关推荐

0 条评论