java中可以对同名函数进行重载,对继承来的方法进行覆盖,列举一下特性:
覆盖:
1.覆盖的方法名和参数必须和父类的方法保持一致,且父类的方法对子类是可见的。
2.覆盖之后的方法的访问权限可以>=父类原来方法的访问权限,返回类型级别可以<=父类的返回类型(继承或实现父类的返回类型的类)
3.在java SE5/6以后应该声明@Override
重载:
1.重载需要方法名相同,参数类型不同。
2.两个不同的参数类型可以是继承或实现的关系(但是不推荐),java会自动匹配最优的方法,传进来的如果是更具体(比如子类)的就会调用更具体的方法。
3.如果分别用两个不同的接口为参数重载一个方法,同时有个类同时实现了这两个方法,那么在用这个类的对象为参数调用这个方法时,java就会提示ambiguous错误,这就需要强制转换成一个接口,指定一下用哪个接口的方法去调用。
4.在参数类型差不多的情况下就应该考虑时候应该重载,重载了调用时候需要格外注意。