🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
### 方法重写 如果在子类中定义的一个方法,其名称、返回类型及参数签名正好与父类中某个方法的名称、返回类型及参数签名相匹配,那么子类重写(覆盖)了父类的方法; 重写(覆盖)必须满足以下条件: * 子类方法的名称、参数签名和返回类型必须与父类方法保持一致 * 子类方法不能缩小父类方法的访问权限 如果没有这个限制,会与java语言的多态机制发生冲突 ~~~ //创建父类型的变量,引用子类的实例 Parent parent = new Child(); //调用的是子类实例的方法,如果子类覆盖这个方法时,缩小了访问权限,可能会造成无法访问到子类实例的这个方法 parent.method(); ~~~ * 子类方法不能抛出比父类方法更多的异常;子类方法抛出的异常必须与父类方法抛出的异常相同,或者子类方法抛出的异常类是父类方法抛出异常类的子类 * 方法覆盖只存在于子类和父类(包括直接父类和间接父类)之间;在同一个类中方法只能被重载,不能被覆盖 * 父类的静态方法不能被子类覆盖为非静态方法 * 父类的非静态方法不能被子类覆盖为静态方法 * 父类的私有方法不能被子类覆盖 * 父类的非抽象方法可以被子类覆盖为抽象方法