侧边栏壁纸
博主头像
听听慢时光博主等级

行动起来,活在当下

  • 累计撰写 19 篇文章
  • 累计创建 25 个标签
  • 累计收到 7 条评论

目 录CONTENT

文章目录

关于Java类的重载和重写的理解

李开开
2024-03-20 / 0 评论 / 0 点赞 / 41 阅读 / 1669 字
温馨提示:
开卷有益,如果文章对您有所帮助,就点个大大的赞吧~
广告 广告

关于Java类的重载和重写的理解

环境

Linux, Win, Java

类的继承

  • Java中,所有的类都有一个默认的父类Object。
  • 继承关系中一般两个角色,父类和子类,其中父类也叫基类,子类也叫派生类。
  • 同时子类可以增加子类特有的属性和方法,并且子类可以重写父类的方法。
  • 使用继承首先可以减少大量的重复性代码,把公共的代码提取出来放到父类中同时也方便管理。
  • 父类的私有属性和构造方法并不能被继承

重写

  • 重写是子类对父类的允许访问的方法的实现过程进行重新编写。
  • 重写的好处是子类能够根据需要实现父类的方法。
  • 发生在父子类中,方法名、参数列表必须相同,返回值范围小于等于父类,抛出的异常范围小于等于父类,访问修饰符范围大于等于父类。
  • 如果父类方法访问修饰符为 private 则子类就不能重写该方法。
  • 父类构造方法默认为private隐性修饰,所以 Constructor 也就不能被 override(重写)。

重载

  • 父类的私有属性和构造方法并不能被继承,,但是可以 overload(重载),可以理解为多态, 所以你可以看到一个类中有多个构造函数的情况。
  • 发生在同一个类中,方法名必须相同,参数类型不同、个数不同、顺序不同,方法返回值和访问修饰符可以不同,发生在编译时。

举个栗子

public class Animal {
    private Integer age;

    public Animal(){ // 构造方法
        System.out.println("Animal construct method");
    }

    public Animal(int age){ // 构造方法的重载
        this.setAge(age);
        System.out.println("Animal construct method set age:"+this.getAge());
    }

    public Integer getAge() {
        return age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }

    public void eat(){
        System.out.println("eat...");
    }
}

继承父类

public class Cat extends Animal{
    public void eat(){
        System.out.println("Cat eat...");
    }
}

0
  1. 支付宝打赏

    qrcode alipay
  2. 微信打赏

    qrcode weixin

评论区