【Java】方法重载和方法重写的区别

来源:互联网 发布:p社 mac 编辑:程序博客网 时间:2024/06/06 10:51

方法重载和方法重写在英文中分别是overload和override,很多人在学习Java的过程中总是分不清重写和重载这两个方法,实际上,这两个方法还是有很大的差别的,重载和重写这两个方法虽然名字有些类似,但他们之间有很少的联系,除了二者都是发生在方法之间,并要求方法名相同之外,没有太大的相似之处。重载主要发生在同一个类的多个重名方法之间,重写则发生在子类和父类同名方法之间,当然父类方法和子类方法之间也可以发生重载,因为子类会获得父类的方法,如果子类定义了一个与父类方法有相同的方法名,但参数列表不同的方法,就会形成父类方法和子类方法的重载。
方法重载要遵循的原则:两同一不同
(1)两同:同一个类中的方法名相同
(2)一不同:参数列表(个数或类型)不同
至于方法中的其他部分,如方法返回值类型、修饰符等,与方法重载没有任何关系。

方法重写要遵循的原则:两同两小一大
(1)两同:方法名相同、形参列表相同
(2)两小:子类方法返回值类型应比父类方法返回值类型更小或相等,子类方法声明抛出的异常类应比父类方法声明抛出的异常类更小或相等
(3)一大:是子类方法的访问权限应比父类方法的访问权限更大或相等

原创粉丝点击