-
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