介绍
本篇文章为大家展示了怎么在Java中重写继承方法,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。
package com.my.pac12; public class  Person { public 才能;void 说(){ ,,,System.out.println (“say …“); ,,} public 才能;static  void 参见(){ ,,,System.out.println(“阅读。“); ,,} public 才能;int  returnNumber (int 数量){ ,,,return 数量; ,,} private 才能;void 运行(){ ,,,System.out.println (“running …“); ,,} public 才能;Person  returnPerson () { ,,,return ; ,,} } class student  extends 人{//才能方法名相同,形参列表相同 public 才能;void 说(){ ,,,System.out.println (“student  say 一些。“); ,,}//才能返回类型为父类或父类的子类 public 才能;Person  returnPerson () { ,,,System.out.println(“子类返回类型可以是父类返回类型或者是其子类类型“); ,,,return ; ,,}//才能并不是重写,只是重新定义了新方法 public 才能;void 运行(){ ,,,System.out.println (“student  is 运行。“); ,,}//不才能是重写,而是发生在父类与子类之间的重载 public 才能;int  returnNuber (int 数字,int otherNumber) { ,,,return 数量+ otherNumber; ,,} public 才能;static  void main (String [], args), { ,,,student s =, new 学生(); ,,,s.say (); ,,,student.see (); ,,,s.see (); ,,,s.run (); ,,,//涉及向上转型 ,,,Person sn =, s.returnPerson (); ,,,//调用的是父类的方法 ,,,System.out.println (s.returnNumber (5)); ,,,//调用子类重载父类的方法 ,,,System.out.println (s.returnNuber (5,5)); ,,} }
<>强概念
强>
子类包含与父类同名,同参数列表的现象就是方法重写(覆盖),也叫方法覆盖。
<强>注意事项
强>
“两同两小一大“
方法名相同,形参列表相同。
子类方法返回值类型小于等于父类方法返回值类型。
//父类 public int  returnNumber (int 数字){ return 才能;数量; }/*基本类型:子类返回值类型小于等于父类返回值类型、下面的语句不允许*///子类 public long  returnNumber (int 数字)
//父类 public void 说(){ System.out.println才能(“say …“); }/*空类型只能由同样孔隙类型的方法重写*///子类 public void 说(){ System.out.println才能(“student  say 一些。“); }
//父类 public Person  returnPerson () { return 才能;; }/*引用类型:子类返回值类型需要与父类相同或者是父类的子类*///子类 public Person  returnPerson () { System.out.println才能(“子类返回类型可以是父类返回类型或者是其子类类型“); return 才能;; }
子类方法声明抛出的异常类小于等于父类抛出的异常类。(这个部分之后再进行补充)
子类方法的访问权限大于等于父类方法的访问权限。
//父类 public void 说(){ System.out.println才能(“say …“); }/*子类方法的访问权限大于等于父类方法的访问权限,下面的语句不允许*///子类 私人(protected 或是缺省),void 说()
<强>其他注意点强>
两者必须同为类方法或者同为实例方法。(实际上类方法无法被重写,只是单纯被隐藏起来,关于静态关键字之后再总结)
//父类 public static  void 参见(){ System.out.println才能(“阅读。“); }/*两者必须同为类方法(静态修饰)或者同为实例方法、下面的语句不允许*///子类 public void 见()
父类被私人修饰,子类无法重写父类。
//父类 private void  run () { System.out.println才能(“running …“); }/*子类无法重写方法、下面的语句是假象,其实是重新定义了一个新方法*///子类 public void  run () { System.out.println才能(“student  is 运行。“); }怎么在Java中重写继承方法