您的位置:首页 > 编程语言 > Java开发

java方法的重载和覆盖

2014-12-06 00:00 204 查看
摘要: java方法的重载和覆盖

一、覆盖

1.什么是方法覆盖子类中有一个方法和父类的方法一模一样,那么这就是覆盖

class Stu{//学生类

private String name;

private int age;

public void eat(){

System.out.println("我的饭量是多少?");

}

}

class Pupil extends Stu{//小学生

public void eat(){

System.out.println("我能吃一碗饭");

}

}

比如以上的代码中Stu这个类总有一个叫做eat的类而在Pupil中也有一个。那么在调用Pupil中的eat方法时那么打印出“我能吃一碗饭”。如果Pupil没有覆盖eat那么打印出来的是“我的放量是多少”

2.注意事项

2.1子类方法中的,函数名,返回值,参数要和父类的一样

2.2 子类方法不能缩小父类方法的访问权限

二、重载

为什么需要重载(使代码更简洁)

class jisuan{

public int add(int a ,int b){//两个整数相加

return a+b;

}

public int add2(float a,float b){//两个浮点数相加

return (int)(a+b);

}

}

如果没有重载的话

public class test {
public static void main(String [] args){
jisuan j = new jisuan();
j.add(1, 2);
j.add2(1.1f, 1.2f);
}
}

有了重载我们类可以这样定义

class jisuan{

public int add(int a ,int b){//两个整数相加

return a+b;

}

public int add(float a,float b){//两个浮点数相加

return (int)(a+b);

}

}

用的时候

public class test {
public static void main(String [] args){
jisuan j = new jisuan();
j.add(1, 2);
j.add(1.1f, 1.2f);
}
}

注意事项:那么什么样的才算重载呢。

方法名称一定是一样的。

函数的参数类型,个数,顺序。至少有一个不一样。

方法的修饰符可以不一样

方法的返回值可以不一样

如果只是返回参数不一样那么不是重载(会报错)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java方法 重载 覆盖