您现在的位置是:首页 > 正文

Java基础(方法重写——override)

2024-02-01 03:55:38阅读 2

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

开发工具与关键技术:IDEA; JAVASE,Override

撰写时间:2020-08-18

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

什么叫做重写:

子类重写父类的方法。就是先通过继承了父类,然后再进行修改父类中所拥有的方法。方法中的形参与方法名不能改变(生活栗子:儿子继承了父亲的一套房子,然后这套房不符合儿子的审美观,儿子再进行修改里面的内容。无论怎么改变也改变不了房子的面积大小,只能进行内饰的改变),也就是说方法体的只能对内容进行修改。

方法的重写需要符合下面的三个要点:

  1. 方法名、形参列表相同
  2. 返回值类型和声明异常类型,子类小于等于父类
  3. 访问权限,子类大于等于父类(访问权限不能比父类中被重写方法的访问权限更低(public>protected>default>private)
  4. 重写方法一定不能抛出新的检査异常或者比被重写方法声明更加宽泛的检査型异常。例如,父类的一个方法声明了一个检査异常 IOException,在重写这个方法时就不能抛出 Exception,只能拋出 IOException 的子类异常,可以抛出非检査异常

需要用到的父类

package com.zqx.Dao;


public class Person {
    public void a(){

    }
}

需要用到的子类

package com.zqx.Dao;

public class Student extends Person{
    @Override
    public void a() {
        super.a();
    }
}

 

测试类

package com.zqx.Dao;

public class intDemo {
    public static void main(String[] args) {
    Horse   h   =  new Horse();
    h.run();
}
}

//父类
class  Vehicle {
    public  void  run(){
        System.out.println("。。。。跑....");
    }

    public   void stop(){
        System.out.println("。。。。。。停止!");
    }
    public Person demo(){
        return new Person();
    }
}
//子类继承父类
class    Horse   extends  Vehicle {
    public  void  run(){
        System.out.println("。。。。。。。飞驰。。");
    }
    //返回值类型和声明异常类型,子类小于等于父类。
    //这个方法返回的是Object,明显是大于父类类型了,所以编译会有异常
//    public Object demo(){
//        return new Object();
//    }
    //子类小于父类类型,所以可行
    public Student demo(){
        return new Student();
    }
}

要注意一下几条:

  1. 父类的成员方法只能被它的子类重写。
  2. 声明为 final 修饰符的方法不能被重写。
  3. 声明为 static 的方法不能被重写,但是能够再次声明。
  4. 构造方法不能被重写。
  5. 子类和父类在同一个包中时,子类可以重写父类的所有方法,除了声明为 private 和 final 的方法。
  6. 子类和父类不在同一个包中时,子类只能重写父类的声明为 public 和 protected 的非 final 方法。
  7. 如果不能继承一个方法,则不能重写这个方法。

更详细的可以到这个网站查看:http://c.biancheng.net/view/1000.html

网站文章

  • 每日一题——v-if和v-show的理解

    每日一题——v-if和v-show的理解

    2024-02-01 03:55:09
  • winform前后端框架_Vue + .NetCore前后端分离的快速发开框架

    框架核心快速开发(基础功能全部由代码生成器生成)支持前端、后台自定义业务代码扩展,后台提供了大量常用扩展与通用类前端、后台提供了近300个扩展方法与属性,开发人员可在此功能上编写扩展自定义业务代码代码...

    2024-02-01 03:55:03
  • LeetCode--相关二叉树的例题与理解

    1、相同的树 给定两个二叉树,编写一个函数来检验它们是否相同。 如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。 示例 1: 输入: 1 1 / \ / \ 2 3 2 3 [1,2,3], [1,2,3] 输出: true 示例 2: 输入:...

    2024-02-01 03:54:57
  • C#软件开发实例.私人订制自己的屏幕截图工具(七)添加放大镜的功能

    C#软件开发实例.私人订制自己的屏幕截图工具(七)添加放大镜的功能

    上一篇:C#软件开发实例.私人订制自己的屏幕截图工具(六)添加配置管理功能 由于截图时可能需要精确截取某一部分,所以需要放大镜的功能,这样截取的时候才更容易定位截图的位置。 添加PictureBox,name属性设置为“pictureBox_zoom”; 在“Form1_Load”事件处理函数中添加以下代码: //设置放大镜的大小 this.pictureBox_zoo...

    2024-02-01 03:54:27
  • 快速复现利用Log4j漏洞启动windows计算器

    快速复现利用Log4j漏洞启动windows计算器

    了解关于漏洞的描述,可以参考Vulnerability Affecting Multiple Log4j Versions Permits RCE Exploit根据文章描述,首先下载JDK1.8u1...

    2024-02-01 03:54:20
  • vue计算属性computed和侦听器watch的使用场景

    vue计算属性computed和侦听器watch的使用场景

    原文链接:https://dsx2016.com/?p=679 微信公众号: 大师兄2016 特点和区别 vue的computed选项主要用于同步对数据的处理,而watch选项主要用于事件的派发,可异步. 这两者都能达到同样的效果,但是基于它们各自的特点,使用场景会有一些区分. computed拥有缓存属性,只有当依赖的数据发生变化时,关联的数据才会变化,适用于计算或者格式化数据的...

    2024-02-01 03:54:13
  • java程序设计任务驱动教程学习笔记二

    java程序设计任务驱动教程学习笔记二

    一、标识符与关键字

    2024-02-01 03:53:43
  • Linux命令-详解more命令

    Linux命令-详解more命令

    2020年已经过去一半,最近欠下了好几篇博客。今天开始说6月的第一个博客,很简单,说一下more的命令。今天在敲命令的时候,忽然忘记咋写了,于是复习一下。

    2024-02-01 03:53:35
  • lftp的日志记录位置

    lftp的日志记录位置

    2024-02-01 03:53:28
  • FPGA:计算滑动求和----信号检测计算信号功率

    FPGA:计算滑动求和----信号检测计算信号功率

    FPGA:计算滑动求和----信号检测计算信号功率

    2024-02-01 03:53:21