重新定义( Override)方法 您可以增大父类别中的方法权限,但不可 以缩小父类别的方法权限 若原来成员是" public"的话,您不可以在父类另 中重新定义它为" private"或" protected public class safeArray extends simplearray //不可以缩小父类别中同名方法的权限 private void setTlement(int i, int data)t setElement (int, int) in safeArray cannot override setElement (intr in t) in simpleArray attempting to assign weaker accessprivilegesi was publicprivate void setTlement (int i, int datail error
重新定义(Override)方法 • 您可以增大父类别中的方法权限,但不可 以缩小父类别的方法权限 – 若原来成员是"public"的话,您不可以在父类别 中重新定义它为"private"或"protected" public class SafeArray extends SimpleArray { //不可以缩小父类别中同名方法的权限 private void setElement(int i, int data) { .... } } setElement(int,int) in SafeArray cannot override setElement(int,in t) in SimpleArray; attempting to assign weaker accessprivileges; was publicprivate void setElement(int i, int data) {^1 error
重新定义( Override)方法 从J2SE5.0开始在重新定义方法时,您可以 重新定义返回值的型态 public class bird i protected string namei public Bird(string name) this. name naime i public Bird get Copied return new Bird(name)i
重新定义(Override)方法 • 从J2SE5.0开始在重新定义方法时,您可以 重新定义返回值的型态 public class Bird { protected String name; public Bird(String name) { this.name = name; } public Bird getCopied { return new Bird(name); } }
重新定义( Override)方法 重新定义的返回值型态必须是父类别中同一方法 返回型态的子类别 public class Chicken extends Bird i protected string crest public Chicken(String name, String crest) super(name)i this crest cresti //重新定义返回值型态为 Chicken publicchicken getCopied() i return new Chicken(name, crest)i 无法重新定义 static方法
重新定义(Override)方法 public class Chicken extends Bird { protected String crest; public Chicken(String name, String crest) { super(name); this.crest = crest; } //重新定义返回值型态为Chicken publicChicken getCopied() { return new Chicken(name, crest); } } • 重新定义的返回值型态必须是父类别中同一方法 返回型态的子类别 • 无法重新定义static方法