亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

簡述重寫和重載的區別

標簽:
Java

重写:
1.发生在子父类之间
2.子类声明了和父类完全相同的方法,同方法名,同参数列表,同返回值
3.访问权限不能被缩小
4.异常不能被扩大
重载:
1.在同一个类中定义了多个同名的方法
2.参数列表不同(参数个数不同,参数类型不同,参数顺序不同(基于参数类型不同))

  1. 和返回类型无关。

请看关于父子类的例子:

  class father
{
 public void move(){
 System.out.println("走");
 }
  }

class child extends father   //child类继承father类
{
 public void move(){        //方法重写要求参数签名必须一致,
  System.out.println("跑")  //方法重写,返回类型也必须相同,输出不同而已
 }
 public void move(String move) //方法重载,重载要求!参数!签名必须不一致,
 {
 System.out.println(move);    //重载对返回类型不做限制。
 }
}

什么是重写?


class A{
public void overWrite()
{
System.out.print("A")
}
}
public class B extends A
{
public void overWrite()
{
System.out.print("B")//输出和父类不一样
}
public static void main(String[] args)//主方法
{
A a=new B();   //重写父类的方法
a.overWrite();//重写父类的属性.
}
}

从上面可以看出:
重载和重写的区别
方法重写要求参数签名必须一致,而重载要求参数签名必须不一致。
方法重写要求返回类型必须一致,而重载对此不做限制。
方法重写只能用于子类重写父类的方法,必须有两个类子类和父类,重载可用于同一个类的所有方法。

给个小测试~
给定java代码如下所示,在A处新增下列( )方法,是对cal方法的
重载(选择两项)
public class Test{
public void cal(int x, int y, int z){
}
}
A. public int cal(int x,int y,float z){return 0;}
B. public int cal(int x,int y,int z){return 0;}
C. public void cal(int x,int z){}
D. public viod cal(int z,int y,int x){}

正确答案:AC
D. public viod cal(int z,int y,int x){}////重载要求参数签名必须不一致 ,哪怕换了位置也不行
B. public int cal(int x,int y,int z){return 0;}//重载要求参数签名必须不一致

點擊查看更多內容
3人點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優質文章

正在加載中
感謝您的支持,我會繼續努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦
今天注冊有機會得

100積分直接送

付費專欄免費學

大額優惠券免費領

立即參與 放棄機會
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

舉報

0/150
提交
取消