Java-覆写和重载区别
覆写
覆写就是指子类定义了与父类同名的方法,但是在方法覆盖时必须考虑权限的问题,既被子类覆写的方法不能拥有比父类更严格的权限。
private<default<public
也就是说子类要重写父类的方法,访问权限必须比父类的还有高,例如父类是default子类应为public
案例
class Person{
void print(){
System.out.println("我是子类的print我正在被调用......");
}
}
class Student extends Person {
@Override
public void print(){
System.out.println("我是父类重写print的方法,我正在被调用.....");
}
}
总结:
覆写时子类的方法名称,参数类型,返回值类型全部都必须相同,否则不是覆写,并且也看到覆写是发生在继承类中。
重载
Java的方法重载,就是在类中可以创建多个方法,它们具有相同的名字,但具有不同的参数和不同的定义,这也体现了类中的多态性。
重载方法名称相同,参数的类型或者个数不同。
覆写和重载两者的比较
重载 | 覆写 |
---|---|
方法名称相同,参数的类型和个数不同 | 方法名称、参数类型和返回值全部相同 |
对权限没有要求 | 子类覆写父类时,必须有更大的权限 |
发生在一个类中 | 发生在继承类中(子类) |