首页 > 新闻动态 >  

新闻动态
NEWS

Java 办法重载与办法重写

添加时间:2013-8-5 点击量:

办法重载(Overload):


1.在同一个类中


2.办法名雷同


3.参数的个数或类型不合


4.与办法的返回类型无关


5.与办法的润饰符无关



办法重写(Override):


办法重写必须是子类持续父类,才干进行对父类的办法进行重写。


1.重写办法与被重写办法必须拥有雷同的办法名


2.重写办法与被重写办法必须拥有雷同的参数列表


3.重写办法的返回值类型必须与被重写办法的返回值类型雷同


4.重写办法不克不及缩小被重写办法的接见权限


这里重视的是重写办法,必须是子类中能接见到的父类的办法。



办法重载与办法重写的差别:


1.重载是同一个类中的同名办法,请求办法名雷同,参数列表不合,与返回值类型无关


2.重写涉及的是子类和父类之间的同名办法,请求办法名雷同、参数列表雷同、返回值类型雷同



办法重载示例:




    //默认初始办法,没有参数

public void work(){}

//重载的办法,含有一个int类型的参数
public void work(int x){}

//重载的办法,含有一个String类型的参数
public void work(String str){}

//重载的办法,含有两个int类型的参数
public void work(int x,int y){}

//错误的重载1,这里会失足,因为重载与返回类型无关
public int work(){return 0;}

//错误的重载2,这里会失足,因为重载与接见润饰符无关
private int work(){}


View Code

测试结果的话,直接应用this关键加.重载的办显示出来。



办法重写示例:




/

父类代码
/
public class Parent {

//要被重写的办法
public void work(){
//省略代码块
}
//要被重写的办法
public void run(String p){
//省略代码块
}
public void sleep(String p){
//省略代码块
}
//此办法无法被重写,因为在子类中接见不到
private void eat(){
//省略代码块
}
}

/
子类代码
/
public class Child extends Parent {

//重写了父类办法
public void work(){
//省略代码块
}
//重写了父类办法
public void run(String people){
//省略代码块
}
//此处无法构成办法重写,因为与父类中的sleep办法的参数列表不合
public void sleep(){

}
//这里会提示编译错误,因为与父类的办法返回类型不合
public String sleep(String p){
return nihao;
}
}


View Code

分享到: