20 方法重写override&方法的重载overload

 欢迎来到@一夜看尽长安花 博客,您的点赞和收藏是我持续发文的动力

对于文章中出现的任何错误请大家批评指出,一定及时修改。有任何想要讨论的问题可联系我:3329759426@qq.com 。发布文章的风格因专栏而异,均自成体系,不足之处请大家指正。

    专栏:

文章概述:对 方法重写override的介绍

关键词方法重写override

本文目录

方法重写override

子类重写父类的方法,可以用自身行为替换父类行为。重写是实现多态的必要条件。

方法重写需要符合下面的三个要点:

  1. = =:方法名、形参列表相同。
  2. :返回值类型和声明异常类型,子类小于等于父类。

返回类型:子类的方法返回类型可以是父类方法返回类型的子类型(协变返回类型)。

异常:子类的方法可以抛出与父类方法相同或更少的异常,但不能抛出父类方法未声明的异常。

  1. :访问权限,子类大于等于父类。

访问修饰符:子类中的方法访问修饰符不能比父类中的方法更严格。比如,如果父类的方法是 public,那么子类的方法也必须是 public,但不能是 protectedprivate

【示例】方法重写

package com.it.xiaoan;

/**
 * 测试方法的重写
 */

public class TestOverride {
    public static void main(String[ ] args) {
    //方法的合适性和多样性
        Horse h = new Horse();
        Plane p = new Plane();
        h.run();
        h.getVehicle().run();
        p.run();
    }
}

class Vehicle {     //交通工具类
    public void run() {
        System.out.println("跑....");
    }
    public Vehicle getVehicle(){
        System.out.println("给你一个交通工具!");
        return null;
    }
}

class Horse extends Vehicle { // 马也是交通工具
    @Override
    public void run() {
        System.out.println("得得得....");
    }
    @Override
    public Horse getVehicle() {
        return new Horse();
    }
}

class Plane extends Vehicle {
    @Override
    public void run() {
        System.out.println("天上飞....");
    }
}

方法的重载(overload)

方法重载

是指在同一个类中,允许存在多个方法名称相同但形参列表不同的方法。

  1. 形参列表不同:形参类型、形参个数、形参顺序不同

作用

  • 提高代码的可读性和灵活性,使得方法名称更加简洁。
  • 允许同一功能根据不同的输入参数执行不同的操作。

方法的重写(override)

方法重写

是指在子类中重新定义从父类继承来的方法,使其具有不同的实现

  1. :方法名、形参列表相同。

作用

  • 实现多态:通过方法重写,子类可以改变或扩展从父类继承的方法的行为,使得在运行时可以选择合适的方法实现。
  • 增强灵活性和可维护性:通过重写,子类能够实现自己特定的行为,同时保持相同的接口。

总结

  • 方法重载:允许在同一类中定义多个方法,它们具有相同的名称但不同的形参列表。主要用于提供同名方法的不同实现,使得代码更加简洁和易于理解。
  • 方法重写:在子类中重新定义父类的方法,实现不同的行为。主要用于实现多态,使得程序在运行时能够选择合适的方法实现。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值