重载:
1.什么时候使用?
当所定义的方法功能相似时
2.构成方法重载的条件:
- 在同一个类中
- 方法名相同
- 参数列表不同(包括:形参数量不同,形参顺序不同,形参的类型不同)
3.注意:返回值类型不作为重载的区分标准(即重载与返回值类型无关),可能会有人不理解,下面详解一下:
例:
class A{ public void a(int a,int b){ } public int a(int a,int b){ } }
上面代码不是方法重载,而且写法是不对的,编译会报错,因为当你调用时,jvm不知该调用void类型的a方法还是类型的a方法。
例:
class A{ public int a(int a,int b){ return a+b; } public double a(int a,double b){ return a+b; } }
上面的代码是可以的,构成方法重载
重载的时候,方法名要一样,但是参数类型和个数不一样,返回值类型可以相同也可以不相同。无法以返回型别作为重载函数的区分标准。
3.重载的好处:
便于阅读,优化程序设计。
方法重写:
注意:重写方法必须和被重写的方法具有相同的方法名,参数列表和返回值类型
覆盖时,子类的方法权限一定要大于等于父类的方法权限
静态只能覆盖静态
父类的私有方法不可以被覆盖
this()与super():
this()相当于调用本类的构造函数,super()相当于调用父类的构造函数,super与this只能存在一个。