1.重写和重载
1.重写发生在继承关系中,
一般是父类的某个方法不满足于使用了,子类重写该方法。
重写要求方法名,参数列表和返回值都相同。
注意:
子类的重写方法的返回值必须等于或小于父类类被重写方法的返回值,就是说子类的返回值类型可以是父类返回值类型 的子类或者与父类返回值类型一致。
子类重写方法的访问权限不能低于父类方法中的访问权限,即父类的访问权限是public,子类访问权限不能是protected、默认不写或者private。子类的访问权限可以高于父类。
2.重载发生在同一个类中同名的方法,
一般是以统一的方式处理不同的类型数据的时候用重载,例如构造方法的重载。
重载要求方法名相同,参数列表不同,与返回值无关。
注意:
对于继承来说,如果父类方法访问权限为private,那么子类就不能对其重载;如果子类定义了一个同名方法,这只是一个子类的的新方法,不会有重载的效果。
2.参数传递问题
1.基本数据类型形参不改变实参
2.引用数据类型形参改变实参
指向对象地址,方法回收单创建的对象依然存在
3.特殊String是引用数据类型,被final修饰,是不可变类,改变了就会指向新的值,不能被继承
例题:
class Foo{
public void edit(int x){
System.out.println("x="+x);//20
}
public void edit(Too x){
x.x++;
System.out.println("x="+x);//地址
System