【Java】方法重载和方法重写的区别
2017-09-25 09:41
393 查看
方法重载和方法重写在英文中分别是overload和override,很多人在学习Java的过程中总是分不清重写和重载这两个方法,实际上,这两个方法还是有很大的差别的,重载和重写这两个方法虽然名字有些类似,但他们之间有很少的联系,除了二者都是发生在方法之间,并要求方法名相同之外,没有太大的相似之处。重载主要发生在同一个类的多个重名方法之间,重写则发生在子类和父类同名方法之间,当然父类方法和子类方法之间也可以发生重载,因为子类会获得父类的方法,如果子类定义了一个与父类方法有相同的方法名,但参数列表不同的方法,就会形成父类方法和子类方法的重载。
方法重载要遵循的原则:两同一不同
(1)两同:同一个类中的方法名相同
(2)一不同:参数列表(个数或类型)不同
至于方法中的其他部分,如方法返回值类型、修饰符等,与方法重载没有任何关系。
方法重写要遵循的原则:两同两小一大
(1)两同:方法名相同、形参列表相同
(2)两小:子类方法返回值类型应比父类方法返回值类型更小或相等,子类方法声明抛出的异常类应比父类方法声明抛出的异常类更小或相等
(3)一大:是子类方法的访问权限应比父类方法的访问权限更大或相等
方法重载要遵循的原则:两同一不同
(1)两同:同一个类中的方法名相同
(2)一不同:参数列表(个数或类型)不同
至于方法中的其他部分,如方法返回值类型、修饰符等,与方法重载没有任何关系。
方法重写要遵循的原则:两同两小一大
(1)两同:方法名相同、形参列表相同
(2)两小:子类方法返回值类型应比父类方法返回值类型更小或相等,子类方法声明抛出的异常类应比父类方法声明抛出的异常类更小或相等
(3)一大:是子类方法的访问权限应比父类方法的访问权限更大或相等
相关文章推荐
- 简单的java实验,涉及到 类继承以及接口问题,方法体的重写(区别于重载)
- java中方法的重载与重写的区别
- Java 重写与重载区别 Java父类的Object方法 要重写tostring原因,多个catch处理逻辑
- java———方法的重载与重写的区别
- Java中方法的重载与重写的区别
- java中方法的重写(overriding)与重载(overloading)的区别
- java中方法的重载与重写的区别
- Java 方法重写与重载的区别
- 【Java】方法重载和方法重写的区别
- Java 重写与重载方法与区别详解
- java学习中重写与重载方法的区别(转自:小鸟的天空)
- Java中方法重载和方法重写区别
- java里面的方法重写和重载的区别
- java面向对象中的方法重载与方法重写的区别
- java学习中重写与重载方法的区别(转自:小鸟的天空)
- Java中方法的重载与重写的区别
- JAVA方法重载与重写的区别
- 专业做笔记24h之Java入门总结(方法重载与方法重写的区别)
- Java中方法重载和方法重写的区别
- java中方法的重载与重写的区别