设为首页 加入收藏

TOP

Java 方法的重写与重载
2014-11-24 03:08:17 来源: 作者: 【 】 浏览:1
Tags:Java 方法 重写 重载

Java 中方法的重载与重写


重载:


1.方法名不相同,参数不同(同名不同参)


(1).注意:这里的不同参包括(参数类型不同、参数个数不同、参数顺序不同)


(2).返回值类型没有要求(可以是void、int、String等)


(3).修饰符没有要求(可以是public、private等)


2.发生在同一个类中


可以参照下面一段代码进行理解


public class ReLoadAdd {
public void add(long a,int b){//add()方法
int c = (int)a+b;
System.out.println(c);
}
//重载add()方法,与add()参数类型不同
private void add(int a,int b){
int c = a+b;
System.out.println(c);
}
//重载add()方法,与add()参数个数不同这里有三个参数
protected void add(long a,int b,int c){
int d = (int)a+b+c;
System.out.println(c);
}
//重载add()方法,与add()参数顺序不同,修饰符为默认
void add(int b,long a){
int c = (int)a+b;
}
}


重写


1.发生在父子类中,子类对父类的方法进行重写


2.同名并且同参,返回值类型也应相同


3.子类方法的修饰符不能比父类方法的修饰符更封闭(要不和父类修饰符相同,要么比父类修饰符更宽泛)


4.子类抛出的异常类型不能比父类抛出的异常更宽泛


下面写一个ReLoadAdd的子类叫ReWriteAdd,完成对父类add()方法的重写


public class ReWriteAdd extends ReLoadAdd{
// 对父类第一个方法add()的重写,修饰符只能为public如果该没其他的报错,是第三条的印证
public void add(long a,int b){
int c = (int)a+b;
System.out.println(c);
}
// 对父类ReLoadAdd第二个add()方法的重写,父类修饰符为protected,所以子类可以为(protected、public)这里为protected
public void add(long a,long b){
long c = a+b;
System.out.println(c);
}
// 对父类ReLoadAdd第三个add()方法的重写,父类修饰符为protected,所以子类可以为(protected、public)这里为protected
protected void add(long a,int b,int c){
int d = (int)a+b+c;
System.out.println(d);
}
}


推荐阅读:


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇Java标识符命名规则 下一篇Java集合简述

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·Announcing October (2025-12-24 15:18:16)
·MySQL有什么推荐的学 (2025-12-24 15:18:13)
·到底应该用MySQL还是 (2025-12-24 15:18:11)
·进入Linux世界大门的 (2025-12-24 14:51:47)
·Download Linux | Li (2025-12-24 14:51:44)