方法重载
参数不一样,名字可以一样
方法重写
需要有继承关系,子类重写父类发方法
-
方法名必须相同
-
参数列表必须相同
-
修饰符:范围可以扩大: public>protect>default>private
-
抛出的异常:范围,可以被缩小:但是不能扩大:classnotfoundexception --》exception(大)
重写,子类的方法和父类必须一致;方法体不同!
为什么要重写?
-
父类的功能,子类不一定需要或者不一定满足!
idea重写快捷键: Alt+Insert:override;
重写和重载的区别
-
1.Override是重写,Overload是重载,两者都是实现多态的方式,区别在于重载是编译时的多态,而重写是运行时的多态.
2.Overload前提是在同一个类中,只要函数名相同,参数列表不同,即构成重载,与返回值无关
3.Override出现在子类和父类中,子类必须和父类声明同样的方法和返回值类型.而且不能比父类被重写方法声明更多异常和拥有更大访问权限.
4.重载对返回类型无要求,不能根据返回类型进行重载识别.
重写与重载之间的区别
方法重载:
1、同一个类中
2、方法名相同,参数列表不同(参数顺序、个数、类型)
3、方法返回值、访问修饰符任意
4、与方法的参数名无关
方法重写:
1、有继承关系的子类中
2、方法名相同,参数列表相同(参数顺序、个数、类型),方法返回值相同
3、访问修饰符,访问范围需要大于等于父类的访问范围
4、与方法的参数名无关