Java编程中 重写和重载 分别是什么?详细告诉我好吗

来源:百度知道 编辑:UC知道 时间:2024/05/30 20:57:03

Java的重写和重载是两种在Java中经常提到的两组概念,它们在各个方面都有着很大的不同,下面详细介绍你要了解的区别。

Java的多态机制

即重写,重写主要用于子类和父类之间,在父类中定义了一个方法,同时在子类中对这个方法进行重写,实现子类行为的特殊化,例如:
class Animal{

void eat(){ System.out.print("animal eat");}

}

class Tiger extends Animal{

void eat(){System.out.print("Tiget eat");}

}

子类中的eat方法即对父类的eat方法实现了重写,重写最常见的例子就是下面的声明:

Animal some=new Tiger();

关于重写,遵循以下的规则:

(1)重写方法必须和被重写方法具有相同的参数列表,返回类型必须和被重写方法的返回类型相同或者是返回类型的子类型。

(2)重写方法的访问控制修饰符不能比被重写方法更严格(比如一个在父类中声明为public的方法重写成一个protected的方法)。

(3)只有实例方法才能被重写,超类中的final方法不能被重写。

(4)重写方法不能抛出新的检查异常,或者是抛出比被重写方法声明的检查异常更广泛的检查异常。

(5)注意一种特殊情况:如果超类的方法版本中声明了检查异常,但重写的子类方法中没有声明,这时如果使用多态的方式进行调用,那么编译器认为你调用的是声明了异常的方法。

(6)尽管多态是在编译时确定对象的类型,但在编译时,还是根据父类的方法声明进行程序检查。因此,如果子类中定义的方法,在父类中没有定义,则会出项编译错误。

Java的重载机制:
重载的实质:在一个类中使用签名相同的多个方法。

按照范