From 3da8d737e631103d1415590d223aa2b61a920a5a Mon Sep 17 00:00:00 2001 From: CyC2018 <1029579233@qq.com> Date: Wed, 15 Aug 2018 22:55:12 +0800 Subject: [PATCH] auto commit --- notes/Java 基础.md | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/notes/Java 基础.md b/notes/Java 基础.md index adf899fa..b329e0bc 100644 --- a/notes/Java 基础.md +++ b/notes/Java 基础.md @@ -576,9 +576,22 @@ SuperExtendExample.func() ## 重写与重载 -- 重写(Override)存在于继承体系中,指子类实现了一个与父类在方法声明上完全相同的一个方法。子类的返回值类型要等于或者小于父类的返回值; +**1. 重写(Override)** -- 重载(Overload)存在于同一个类中,指一个方法与已经存在的方法名称上相同,但是参数类型、个数、顺序至少有一个不同。应该注意的是,返回值不同,其它都相同不算是重载。 +存在于继承体系中,指子类实现了一个与父类在方法声明上完全相同的一个方法。 + +为了满足里式替换原则,重写有有以下两个限制: + +- 子类方法的访问权限必须大于等于父类方法; +- 子类方法的返回类型必须是父类方法返回类型或为其子类型。 + +使用 @Override 注解,可以让编译器帮忙检查是否满足上面的两个限制条件。 + +**2. 重载(Overload)** + +存在于同一个类中,指一个方法与已经存在的方法名称上相同,但是参数类型、个数、顺序至少有一个不同。 + +应该注意的是,返回值不同,其它都相同不算是重载。 # 五、Object 通用方法