浅谈Java-重载和重写

重载

在Java中一个很重要的概念是方法的重载,它是类名的不同表现形式。重载表示同一个类中可以有多个名称相同的方法,但这些方法的参数列表各不相同(即参数个数或类型不同)。

public class Apple {
 int sum;

 String color;

 public Apple(){}
 public Apple(int sum){}

 public int getApple(int num){
     return 1;
 }
 
 public String getApple(String color){
     return "color";
 }
}

如上面所示,就有两种重载的方式,一种是Apple 构造函数的重载,一种是getApple方法的重载。

但是这样就涉及到一个问题,要是有几个相同的名字,Java如何知道你调用的是哪个方法呢?这里记住一点即可,每个重载的方法都有独一无二的参数列表。其中包括参数的类型、顺序、参数数量等,满足一种一个因素就构成了重载的必要条件。


请记住下面重载的条件 

  • 方法名称必须相同。
  • 参数列表必须不同(个数不同、或类型不同、参数类型排列顺序不同等)。
  • 方法的返回类型可以相同也可以不相同。 
  • 仅仅返回类型不同不足以成为方法的重载。 
  • 重载是发生在编译时的,因为编译器可以根据参数的类型来选择使用哪个方法。

重写

方法的重写与重载虽然名字很相似,但却完全是不同的东西。方法重写的描述是对子类和父类之间的。而重载指的是同一类中的。例如如下代码

class Fruit {
 public void eat(){
    System.out.printl('eat fruit');
   }
}

class Apple extends Fruit{
  @Override
  public void eat(){
    System.out.printl('eat apple');
   }
}

上面这段代码描述的就是重写的代码,你可以看到,子类Apple 中的方法和父类Fruit 中的方法同名,所以,我们能够推断出重写的原则
 

请记住下面重写的条件 

  • 重写的方法必须要和父类保持一致,包括返回值类型,方法名,参数列表也都一样。 
  • 重写的方法可以使用@Override注解来标识
  • 子类中重写方法的访问权限不能低于父类中方法的访问权限。

  • 5
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值