override的使用场景:重写父类的内容。这里主要讲重写父类的方法,重写必须满足以下约束:
1、方法名、返回类型、参数签名完全相同。
2、具有相同的访问权限(在Java中,重写不能扩大访问权限,如果父类方法抛出异常,子类方法只能抛出相同或者更具体的异常,或者不抛出异常(等价于抛出相同的异常),否则里氏代换会出现问题。)
override的使用场景细分为以下三类:
1、重写abstract,必须重写。
2、重写virtual,可以重写。重写,调用子类的方法;不重写,调用父类的方法。
3、重写override,在重写的基础上再次重写。
当子类方法与父类方法的方法名、返回类型、访问权限、参数签名完全相同时,默认是隐藏父类的方法(相当于添加new)。有意隐藏添加new,有意重写添加override。