重载和重写的区别
学习笔记
Java基础
一、重载(overloading)
重载:发生在同一个类中,方法名必须相同,参数类型不同、个数不同、顺序不同,方法返回值和访问修饰符可以不同;发生在编译时。
方法重载是让类以统一的方式处理不同类型数据的一种手段。多个同名函数同时存在,具有不同的参数个数/类型。重载Overloading是一个类中多态性的一种表现。
Java的方法重载,就是在类中可以创建多个方法,它们具有相同的名字,但具有不同的参数和不同的定义。
调用方法时通过传递给它们的不同参数个数和参数类型来决定具体使用哪个方法, 这就是多态性。
重载的时候,方法名要一样,但是参数类型和个数不一样,返回值类型可以相同也可以不相同。无法以返回值类型作为重载函数的区分标准。
父类方法被默认修饰时,只能在同一包中,被其子类重写,如果不在同一包则不能重写。
父类的方法被protoeted时,不仅在同一包中,被其子类重写,还可以不同包的子类重写。
二、重写(override)
重写:发生在父子类中,方法名、参数列表必须相同,返回值范围小于等于父类,