简介java中重写与重载的区别简介(java学习必知的重载重写知识)

重载与重写

java中有overload重载和override重写

重载

重载是指一个类中有多个名称相同但是参数列表不同的方法(参数列表不同是指参数个数或类型不同),编译器在比较方法重载时会忽略掉它们的返回类型以及抛出的异常

重写

重写是指子类中的方法与父类中的某个方法名称和参数完全相同,通过子类创建的实例对象将父类中的这个方法覆盖掉,是面向对象多态性的一种表现。

子类重写父类的方法

  • 只能比父类抛出更少的异常,或者抛出父类抛出异常的异常
  • 子类方法的访问权限只能比父类的更大,如果父类方法为private,那么相当于子类中增加了一个全新的方法

必须符合以上两点的原因是因为多态的机制,在使用子类对象指向父类引用时,调用父类的方法被认为是合法的,但是如果子类的访问权限比父类小,或者子类抛出的异常比父类多,这在编译上是不允许的,与多态机制是矛盾的

  • 静态方法不可被重写,否则会出现编译错误

Instance method 'testStatic()' in 'com.zhanghe.study.duotai.Child' cannot override static method 'testStatic()' in 'com.zhanghe.study.duotai.Parent'

简介java中重写与重载的区别简介(java学习必知的重载重写知识)(1)

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页