重写与重载的区别

28 篇文章 0 订阅
24 篇文章 0 订阅
本文介绍了Java中的方法重载和重写概念。方法重载关注于参数列表的不同,包括参数类型和顺序,而返回类型不影响重载。方法重写发生在子类中,要求方法名、参数列表完全一致,返回类型可以是父类类型或其子类。强调了在重写时不能缩小访问权限,并提供了相关示例进行说明。
摘要由CSDN通过智能技术生成

重载

先说一个重写的例子

package com.Overload;

import java.sql.SQLOutput;

public class OverloadText {
    public static void main(String[] args)
    {
        System.out.println("nt");
        System.out.println("hitai");
    }
}

我们经常使用的这条与语句他就是printstream类,对应到我们自己创建的类那就是方法呀,

下面就来一个最简单的重载入门,虽说最简单但是也包含了一些小细节

我先写了calculate来计算他的和。

package com.Overload;

public class Text01 {
    public double calculate(double num01,int num02)
    {
        return num01+num02;
    }
    public double calculate(int num01,double num02)
    {
        return num01+num02;
    }
    public double calculate(double num01,int num02,double num03)
    {
        return num01+num02+num03;
    }
}

第一个calculate用了double类和int,第二个用了int和double类,注意他们作为参数传进去的顺序发生了变化,最后看第三个我用了两个double和一个int,就是参数数量不一样这么说可能不明显,

我再创建两个方法

 public int calculate(int num01,int num02,int num03)
    {
        return num01+num02+num03;
    }
    public int calculate(int num01,int num02)
    {
        return num01+num02;
    }

然后运用就是这样

 注意第三个是因为二进制无法处理一些小数造成的。

通过上述例子我们可得出一些要

一.名字一样

二.参数循序不一样或类型不一样(注意不要说 int num02,int num01)这不叫顺序不一样

三.返回类型没用

他会提示你类已经定义了,并报错

重写

其实差不多是一样的,他的定义我翻译翻译下就是子类定义的方法完全覆盖(override)了父类的方法

那我就可以联想到要怎么覆盖呢?

首先肯定是方法名一样,再然后是传入参数一样,那返回类型要不要一样下面我在解释。

前两个相信很好理解,重点来解释下最后一个吧。

返回类型可以相同或是是其子类,怎么理解呢?我觉得就是子类总不可能去抢父类的东西吧

下面是实例

package com.Override;

import com.sun.org.apache.xpath.internal.objects.XObject;

public class OverrideText {
    public Object say()
    {
        return null;
    }
    public String ok()
    {
        return null;
    }
}

class AAA extends OverrideText
{
    public String say()
    {
        return  null;
    }
}
class BBB extends OverrideText
{
    @Override
    public Object say() {
        return super.say();
    }
}

前面的对应我说的返回类型一样会是其子类,因为object是所有父类

而这个就因为int 是基本数据类型连类都不算肯定不行

 

 

 就这样,还有就是不能缩小访问权限

总结

一.方法名,参数全一致

二.返回类型是原来的类或其子类但不能是父类且缩小访问权限即修饰符

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值