From f2e328077837db950892d87587761a23395218b9 Mon Sep 17 00:00:00 2001 From: CyC2018 Date: Tue, 26 Mar 2019 14:56:18 +0800 Subject: [PATCH] =?UTF-8?q?Update=20Java=20=E5=9F=BA=E7=A1=80.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/notes/Java 基础.md | 34 +++++++++++++++++++--------------- 1 file changed, 19 insertions(+), 15 deletions(-) diff --git a/docs/notes/Java 基础.md b/docs/notes/Java 基础.md index 2152dd26..eb01433c 100644 --- a/docs/notes/Java 基础.md +++ b/docs/notes/Java 基础.md @@ -674,22 +674,26 @@ SuperExtendExample.func() - 子类方法的返回类型必须是父类方法返回类型或为其子类型。 - 子类方法抛出的异常类型必须是父类抛出异常类型或为其子类型。 -使用 @Override 注解,可以让编译器帮忙检查是否满足上面的三个限制条件。例如: -```java -public class test { - class father{ - protected List say() throws Throwable{ - System.out.println("father"); - return new ArrayList<>(); - } - } +使用 @Override 注解,可以让编译器帮忙检查是否满足上面的三个限制条件。 - class son extends father{ - @Override - public ArrayList say() throws Exception { - System.out.println("son"); - return new ArrayList<>(); - } +下面的示例中,SubClass 为 SuperClass 的子类,SubClass 重写了 SuperClass 的 func() 方法。其中: + +- 子类方法访问权限为 public,大于父类的 protected。 +- 子类的返回类型为 ArrayList,是父类返回类型 List 的子类。 +- 子类抛出的异常类型为 Exception,是父类抛出异常 Throwable 的子类。 +- 子类重写方法使用 @Override 注解,从而让编译器自动检查是否满足限制条件。 + +```java +class SuperClass { + protected List func() throws Throwable { + return new ArrayList<>(); + } +} + +class SubClass extends SuperClass { + @Override + public ArrayList func() throws Exception { + return new ArrayList<>(); } } ```