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

Java的的方法重载和方法重写

2017-04-22 21:25 316 查看
Java的方法重载和方法重写

Java的方法重写

Java的方法重写,发生在两个类中,一般用在继承中。子类的返回值,方法名,参数个数和参数类型都和父类一样,子类在重写父类方法时,对于重写的方法的修饰符必须范围大于或者等于父类的方法的修饰符.如果小于父类的会抛出异常.

举例子:

class Person{
void say(int a){
System.out.println("I am a person!");
}
}
class Student extends Person{
protected void say(char a){//这个不叫重写,因为参数的类型不一致,这个是自己定义的一个方法
System.out.println("I am a student!");
}
}
class Worker extends Person{
public void say(int a){
System.out.println("I am a worker");
}
}


Java的方法重载

Java的方法重载,发生在一个类中。

重载必须满足以下条件:

1.必须是同一个类

2.方法名(也可以叫函数)一样

3.方法参数个数或参数类型(或参数的类型不是同一种的情况下参数顺序)不同一般用在继承中。子类的返回值,方法名,参数个数和参数类型都和父类一样

注:

方法的返回类型以及方法的修饰符都不能称为重载的条件

1.参数顺序指的是参数类型顺序,与参数名字无关,比如

show(int a,String a,int c)和show(int c,String b,int a)是一样的方法,非方

法重载,因为他们的参数类型顺序一样是int,String,int

2.方法重载与访问权限修饰符和方法返回值无关

在一个类中不允许定义两个方法名相同,并且参数签名也完全相同的方法。因为假如存在这样的两个方法,Java虚拟机在运行时就无法

决定到底执行哪个方法。参数签名是指参数的类型、个数和顺序。

举例子:

class Animal {
public void say() {
System.out.println("I can eat!");
}

public void say(String string) {
System.out.println("I can say" + string);

}

protected int say(int a) {
return a;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java 继承