首页 > 其他分享 >重写方法总结

重写方法总结

时间:2023-12-28 20:44:34浏览次数:32  
标签:总结 super 重写 Object equals 父类 方法

总结

方法覆写(重写/Override)

  • 方法覆写作用

    保证业务逻辑合理性

  • 方法覆写语法

    直接将父类中要重写的方法复制到子类后,重写方法体即可

  • 方法覆写注意事项

    1. 并不是每一个继承过来的方法都要重写。
    2. 并不是每一个子类都要重写父类继承过来的方法。
  • super 关键字

    在子类中的某一个方法中需要去调用父类中被覆盖的方法,此时得使用 super 关键字。

    public class Ostrich extends Bird{ 
    public void fly() { 
    System.out.println("扑扑翅膀,快速奔跑..."); 
    }
    
    public void say() { 
    super.fly();//调用父类被覆盖的方法 
    fly();//调用本类中的方法 
    } 
    } 
    

    如果调用被覆盖的方法不使用 super 关键字,此时调用的是本类中的方法。
    super 关键字表示父类对象的意思,更多的操作,后面再讲。
    super.fly()可以翻译成调用父类对象的 fly 方法。

抽象类和抽象方法

抽象方法

  • 抽象方法:没有方法体,且用abstract修饰的方法
  • 语法:修饰符 abstract 返回值类型 方法名(...);
  • 抽象方法作用:为了保证业务逻辑合理性,强制子类根据自己的需求,重写方法。

抽象类

  • 抽象类:就是用abstract修饰的类。
  • 抽象类作用:就是用来装抽象方法的。
  • 语法:命名一般类名AbstractXxx
修饰符 abstract class AbstractXxx{
实例变量
    类变量
    实例方法
    类方法
    构造方法  // 语法规定:抽象类不能创建对象。只能在子类中通过super使用
    抽象方法:修饰符 abstract 返回值类型 方法名(...);
}
  • 抽象类的使用场景:

    一般作为业务父类(基类,模板类),且业务父类中,有的方法需要所有子类强制重写。

Object类(及方法覆写的应用)

  • 概念

    类 Object 是类层次结构的根类,每个类都使用 Object 作为超类。

    所有对象(包括数组)都可以调用到Object中的方法;

  • Object类中方法

    1. int hashCode() 返回对象的哈希码值。
    2. boolean equals(Object obj) 根据实际业务,判断两个对象成员变量的值是不是“相等”,不是直接判断==
      判断当前对象和obj参数地址是否"相等",要比较什么类型的对象就用重写其对应类型的equals方法。
      例如:
      两个学生,我们认为成员变量:姓名和电话号码相同就是同一个人,就用重写学生类的equals方法。
      两个教师,我们认为成员变量:身份证号相同就是同一个人,就用重写教师类的equals方法。
    3. String toString() 返回对象的字符串表示形式。如果需要打印对象的制定格式,则需要重写当前对象所对应类的toString方法即可 。
    4. Class getClass() 返回此 Object的运行时类,即当前对象所对应的字节码文件。
      (反射时重点讲)字节码文件用==比较(了解)
  • 方法覆写

    • toString方法

          @Override
          public String toString() {
              return "Person{" +
                      "name='" + name + '\'' +
                      ", gender='" + gender + '\'' +
                      ", age=" + age +
                      '}';
          }
      
    • equals

          @Override
          public boolean equals(Object o) {
              if (this == o) return true;
              if (o == null || getClass() != o.getClass()) return false;
              Person person = (Person) o;
              return age == person.age && Objects.equals(name, person.name) && Objects.equals(gender, person.gender);
          }
      
    • hashCode

          @Override
          public int hashCode() {
              return Objects.hash(name, gender, age);
          }
      }
      

标签:总结,super,重写,Object,equals,父类,方法
From: https://www.cnblogs.com/JunYuanStudy/p/17933528.html

相关文章

  • 包&封装&继承总结
    总结包package概念概念:简单的理解包就是一个文件夹。包作用①方便管理项目中的类等文件。②可以避免类名冲突的问题。使用包定义包包命名规范:一般是公司域名反写.项目名.模块名字.子模块名;要求:包名是全英文小写。packagecn.itsource.packagedemo;//声明包导入包......
  • 2023-2024-1 20231329 《计算机基础与程序设计》第14周学习总结
    作业信息这个作业属于哪个课程2023-2024-1-计算机基础与程序设计https://edu.cnblogs.com/campus/besti/2023-2024-1-CFAP这个作业要求在哪里2022-2023-1计算机基础与程序设计第14周作业(https://www.cnblogs.com/rocedu/p/9577842.html)这个作业的目标《C语言程......
  • 2023-2024 20231313《计算机基础与程序设计》第十四周学习总结
    2023-202420231313《计算机基础与程序设计》第十四周学习总结作业速达作业课程班级链接作业要求计算机基础与程序设计第十四周学习总结作业内容《C语言程序设计》第13章并完成云班课测试作业正文我的作业目录教材总结总结学习过程中的问题《C语言程......
  • 四川大学网络空间安全学院暑期实训总结
    实习目的、要求:本次实训以网络与信息安全实用化人才培养体系为指导,以学生在校实际学习课程为理论基础,主要通过对各个网络安全漏洞原理的实际训练,使学生掌握基于云计算、WEB服务等方面的漏洞原理和利用方法。培养学生实际动手操作能力以及理论转化运用能力,除了基础理论......
  • 12.28每日总结2
    今天下午接着写软件企业文化的大作业市场推广 确定目标市场:首先,你需要确定你的目标市场是谁。考虑该技术最适合哪些行业或领域,并了解这些市场的需求和痛点。深入了解竞争环境:研究类似的软件技术是否已经存在,了解竞争对手的优势和劣势。这有助于你们找到与众不同的竞争优势,并确......
  • OpenCV的人形识别级联分类器使用方法
    OpenCV的人形识别级联分类器使用方法如下:首先,确保已经安装了OpenCV库。如果没有安装,可以使用以下命令进行安装:pipinstallopencv-python下载一个预训练的人形识别级联分类器文件,例如haarcascade_fullbody.xml。这个文件可以在OpenCV的GitHub仓库中找到:https://github.com/......
  • python字典中删除键值的方法
    一、pop()方法删除keyPython字典是一种无序的映射数据类型,通过键值对的形式进行存储,可以使用键来快速找到对应的值。在某些情况下,我们可能需要在字典中删除某个键,这时候就可以使用Python字典提供的pop()方法。pop()方法用于删除字典中指定的键,并返回该键对应的值。使用该方法时需传......
  • 统计学习方法第1章 统计学习方法概论1.1李航
    第1章统计学习方法概论本章简要叙述统计学习方法的一些基本概念。这是对全书内容的概括,也是全书内容的基础。首先叙述统计学习的定义、研究对象与方法;然后叙述监督学习,这是本书的主要内容;接着提出统计学习方法的三要素:模型、策略和算法;介绍模型选择,包括正则化、交叉验证与学习......
  • Java-继承:重载与重写的区别
    一、重写(Override)子类继承父类,子类重写父类中的所有公共方法,覆盖父类的方法并对其重写。注意事项:重写前后方法名相同;参数列表相同;返回值相同子类重写的方法所抛出的异常必须与父类中的被重写方法的异常一致,或者不能比父类的异常范围更大。父类的私有方法不能被重写,如果子类非要......
  • #1全职独立开发两周总结
    ......