2020-12-09

Java基础之:方法重写

Java基础之:方法重写

方法重写(覆盖),就是在子类中有一个方法与父类中的方法,有一样的方法名,返回类型,参数列表。那么我们就说子类的方法重写(Override)了父类的方法。

简单案例

class A{  public int AA(int n1,intn2){  return n1 + n2; }}class B extends A{ //这时,我们就说 子类B 的 AA方法,重写了 父类 A的AA方法 //@Override 注解: 作用是标记 方法重写了, 如果不满足重写规则,就会报错 @Override public int AA(int n1,int n2){  return n1 - n2; }}

方法重写细节注意

  1. 子类的方法的参数,方法名称,要和父类方法的参数,方法名称完全一样。

  2. 子类方法的返回类型可以是父类方法的返回类型的子类,例如 若父类方法返回Object类型,那么子类方法可以设置返回类型为String类型。(jdk5.0的特性)

  3. 子类方法不能缩小父类方法的访问权限。例如父类方法是public修饰的,那么子类也只能是public修饰的。父类方法是portected修饰的,子类方法可以是public或protected修饰的。

简单案例

class AA {  public void say(String name) {  System.out.println("AA say() " + name); }  public Object hi() {  return new Object(); }  void run() {  System.out.println("AA run..."); }}​class BB extends AA{  //子类的方法的参数,方法名称,要和父类方法的参数,方法名称完全一样 public void say(String name) {  System.out.println("BB say() " + name); }  //子类方法的返回类型需要和父类方法返回类型一样,或者是父类返回类型的子类 public String hi() {  return ""; }  //子类方法不能缩小父类方法的访问权限 //一代更比一代强 public void run() {  System.out.println("BB run..."); } }

重写与重载

简单练习

编写一个Person类,包括属性/private(name、age),构造器、方法say(返回自我介绍的字符串)。

编写一个Student类,继承Person类,增加ID、Score属性/private,以及构造器,定义say方法(返回自我介绍的信息)。

编写Test类,分别创建Person和Student对象,调用say方法输出自我介绍。

package override.ClassWork;​public class Override_ClassWork { public static void main(String[] args) {  Person person = new Person("小范",20);  Student student = new Student("小黄",18,1001,123);    System.out.println(person.say());  System.out.println(student.say()); }}​//编写一个Student类,继承Person类,增加ID、Score属性/private,//以及构造器,定义say方法(返回自我介绍的信息)。class Student extends Person{ private int ID; private int Score; public Student(String name, int age, int iD, int score) {  super(name, age);  ID = iD;  Score = score; }  public Student() {  super(); }  @Override public String say() {    return super.say()+" ID:"+ID+" Score:"+Score; }}​//编写一个Person类,包括属性/private(name、age),构造器、方法say(返回自我介绍的字符串)。class Person{ private String name; private int age; public Person(String name, int age) {  super();  this.name = name;  this.age = age; }   public Person() {  super(); }​ public String say() {    return "name:"+name+" age:"+age; }}

 

 









原文转载:http://www.shaoqun.com/a/497305.html

壹米滴答:https://www.ikjzd.com/w/2314

tinypic:https://www.ikjzd.com/w/114

isbn:https://www.ikjzd.com/w/174


Java基础之:方法重写方法重写(覆盖),就是在子类中有一个方法与父类中的方法,有一样的方法名,返回类型,参数列表。那么我们就说子类的方法重写(Override)了父类的方法。简单案例classA{publicintAA(intn1,intn2){returnn1+n2;}}classBextendsA{//这时,我们就说子类B的AA方法,重写了父类A的AA方法//@Override注解:作用是标
camel:camel
邮乐网:邮乐网
品味千年秦人文化、吃一碗美食羊肉泡馍 - :品味千年秦人文化、吃一碗美食羊肉泡馍 -
亚马逊Prime Day即将到来:哪些销售细节值得关注?:亚马逊Prime Day即将到来:哪些销售细节值得关注?
世园会绿雕格外引人注目 :世园会绿雕格外引人注目

No comments:

Post a Comment