java基础 ——方法重写与方法重载的区别

一、方法的重写

对于一个方法而言:
区分方法是通过方法名找方法 通过参数列表来确定方法
方法重写:
发生继承关系、实现关系 父类不满足子类的需求 子类重写父类中的方法
什么情况下会发生重写?
1:发生继承
2:方法名同名
3:参数列表要一模一样 (顺序 个数 类型)
4:子类的返回值类型<=父类的返回值类型(引用) 基本类型一模一样
5:子类的修饰符>=父类的修饰符 (父类中的修饰符不能是private)
6:子类抛出的异常<=父类抛出的异常 (理解:可以认为任意一个方法都会对外抛出运行时异常)
口诀:参一反小修大异小
在重写方法的上一行加入@Verride可验证是否为重写方法

示例:
package com.mage.quntao.io;  

public class F {  
public String name;  
public String age;  
public F() {  
      
}  
public void eat() {  
    System.out.println("爱吃蔬菜");  
}     
  
}  
class Child extends F{  
public String hobit;  
public Child(){  
      
}  
@Override  
public void eat() {  
    System.out.println("爱吃肉,爱打游戏");  
}  
public void eat(int num) {  
    System.out.println("每顿要吃"+num+"碗饭");  
}  
}

二、方法的重载

在一个类当中编写方法的时候,多个方法其实所做的事情是一样的
为了契合方法起名要见名知意,方法名称可以一样。
在一个类中定义同名方法是可以的,称之为重载。
2同
同类 、同名
3不同
参数列表长度不同 、 参数列表类型不同 、 参数列表顺序不同

/**    重载方法的面试题   
 以下程序中输出什么内容        
如果程序中的重载方法,都没有完全符合的。    
但是存在多个能够调用的方法时,程序会报错    
 */

public class Demo08{      
   public static void main(String[] args){         
     info(12,12.1f);              
   }         
   public static void info(char ch,double d){         
     System.out.println("info char ch,double d");       
   }      
   public static void info(int ch,double d){  
     System.out.println("int ch,double d");       
   }      
   public static void info(long ch,float d){           
     System.out.println("long ch,float d");      
   }   
 }  

三、方法重写和方法重载的区别

1、方法重写需要有继承关系,重载不需要·
2、方法重写参数列表要相同,重载的话参数列表要不同
3、方法重载不管返回值,重写方法子类的返回值类型<=父类的返回值类型。
4、方法重写子类的修饰符>=父类的修饰符 (父类中的修饰符不能是private),方法重载则不作要求
5、方法重写子类抛出的异常<=父类抛出的异常 (理解:可以认为任意一个方法都会对外抛出运行时异常),

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值