详述重写

您所在的位置:网站首页 什么是重写有什么要求 详述重写

详述重写

2024-03-24 06:04| 来源: 网络整理| 查看: 265

首先掷出三个问题:为什么要重写?什么是重写?怎么重写? 1.为什么重写?

例子:比如父类方法中关于吃东西的方法eat,父亲由于年迈,只会用手抓饭吃。然而儿子在外见过世面,会使用筷子吃饭了。那么当儿子继承了父亲的eat方法后,儿子也只能用手抓饭。显然,父亲老套的用手抓饭的方法已经不能够满足儿子的吃饭方式了。换句话来说,就是当“不能准确形容子类自身的特征”的时候,这个时候我们要进行重写的操作。

2.什么是重写?

顾名思义,重新书写,或重新改写。

就是在子类中写一个跟父类一样的方法,但是这个方法有一些要求。

package sunnny; public class Father { public void eat() { System.out.println("用手抓饭"); } } package sunnny; public class Son extends Father{ public void eat() { System.out.println("用筷子吃饭"); } public static void main(String[] args) { Son son=new Son(); son.eat(); } }

这两段就是在子类中重写了eat方法,这时我们可以看到,输出结果是用筷子吃饭。

3.怎么重写?

重写不是简单地把父类的代码复制到子类里,他有一些形式上的要求。

返回值类型的要求:如果父类的返回值类型为基本数据类型或者是void,那么子类中的返回值类型必须和父类相同。                                              如果父类的返回值类型为引用数据类型,那么子类中返回值类型必须父类数据类型的子类或者相同。                                      object是所有引用数据类型的父类。

方法名和参数列表:要求子类与父类的方法名和参数的数据类型和个数必须相同。

访问权限:子类重写的方法不能缩小父类被重写方法的访问权限,子类重写方法的访问权限必须大于等于父类被重写方法的访问权限。访问权限由大到小排序:public  protected friendly private,但注意父类不可以用private来修饰!

static:用于重写的父类和子类都不能用static来修饰!父类静态方法可以被继承,但是不能被重写。

final:父类中被final关键字修饰的方法可以被子类继承,但却不能被子类重写。

当重写了方法之后,必须调用父类方法的时候①对于非静态代码块或者方法,使用super调用。                                                                                                                      ②对于静态代码块或方法,必须创建父类对象调用。

@Override:java为标注重写后的方法,使用@Override

 

 



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3