Java编程之方法重写

举报
魏铁锤 发表于 2022/09/20 23:47:52 2022/09/20
【摘要】 ## 继承关系的初始化顺序 - 父类属性 - 父类的构造方法 - 子类属性 - 子类的构造方法 ## 什么是方法重写 - 方法重写的规则: 1. 方法名相同 2. 参数列表相同 3. 返回值列表相同或者是其子类相同 4. 访问权限不能严于父类 ## 解析:         方法重写就是当我们在子类里边去调用父类的方法     时,没有办法输出子类特有的属性,原因是因为父类不     可以直接去访问

## 继承关系的初始化顺序
- 父类属性
- 父类的构造方法
- 子类属性
- 子类的构造方法
## 什么是方法重写
- 方法重写的规则:
1. 方法名相同
2. 参数列表相同
3. 返回值列表相同或者是其子类相同
4. 访问权限不能严于父类
## 解析:
        方法重写就是当我们在子类里边去调用父类的方法
    时,没有办法输出子类特有的属性,原因是因为父类不
    可以直接去访问子类的属性,这个时间就需要用到方法
    重写或者叫做方法覆盖,那么什么是方法重写呢?
        方法重写就是方法方法名相同,名称一摸一样,参
    数列表相同,参数个数和类型要求必须一致,返回值类
    型相同,或者是其子类,访问权限不能严于父类就是访
    问修饰符的权限不能低于父类的修饰符访问权限。
    接下来根据一个小案例感受一下这个知识点。
## 案例:
父类代码如下:
```
class GZ {
    private String name;
    private int age;
    public String sex;
     public GZ(){
         System.out.println("父类无参构造方法");
     }
     public GZ(String a,int b,String c){
         this.name=a;
         this.age=b;
         this.sex=c;
         System.out.println("父类有参构造方法");
     }
    public void show(){
         System.out.println("我是父类的构造方法");
    }
}
```
子类代码如下:
```
 class Demo extends GZ {
    public static void main(String[] args) {
        GZ input = new GZ();

    }
    public void setSex(String sex){
        this.sex=sex;
    }
    @Override
    public void show(){
        super.show();
        System.out.println(sex);
    }
}
```
子类代码如下:
```
public class Sun {
    public static void main(String[] args){
        GZ input=new GZ("铁锤",18,"男");
        input.show();
    }
}
```
## 解析:
        通过序号访问,不需要用呢,这个地方也可以不调用,
    它并不是一个必须的关系,这是我们看到的重写,重写的
    规则大家一定要,理解并熟练记住,方法名相同,参数相
    同,返回之相同或是其子类,访问权限,不能言语负累,
    这是一个重点,我们前面学过一个方法的重写,那我们对
    方法重载和方法重写做一个对比,方法重写,是在子类当
    中去重写父类,就是覆盖,要求方法名相同,参数相同,
    返回值相同或是其子类,访问修饰符不能比父类更严格。
## 方法重载与方法重写的区别

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。