当前位置:网站首页>Day019 方法重写与相关类的介绍
Day019 方法重写与相关类的介绍
2022-08-05 04:15:00 【陌 年】
一、方法重写
1、方法重写的概念
(1)子类根据需求对从父类继承的方法进行重新编写
(2)重写时,可以用super.方法的方式来保留父类的方法
(3)构造方法不能被重写
2、方法重写规则
(1)方法名相同
(2)参数列表相同
(3)返回值类型相同或者是其子类
(4)访问权限不能严于父类
(5)父类的静态方法不能被子类覆盖为非静态方法,父类的非静态方法不能被子类覆盖为静态方法
(6)子类可以定义与父类同名的静态方法,以便在子类中隐藏父类的静态方法(注:静态方法中无法使用super)
(7)父类的私有方法不能被子类覆盖
(8)不能抛出比父类方法更多的异常
2、方法重写与方法重载的区别
二、Object类
Object类:是所有类的父类
Object类被子类经常重写的方法
1、Object类的equals()方法
(1)比较来俩个对象是否是同一个对象,是则返回true
(2)操作符
①简单数据类型,直接比较值。如1==2
②引用类型,比较两者是否为同一对象
注意:
(1)Object类的equals()方法与==没区别
(2)当有特殊需求,如认为属性相同即为同一对象时,需要重写equals()
(3)Java.lang.String重写了equals()方法,把equals()方法的判断变为了判断其值
2、练习
package cn.bdqn.demo04;
import java.util.Objects;
public class Student {
private String name;
private int idCard;
private int age;
public Student() {
}
public Student(String name, int idCard, int age) {
this.name = name;
this.idCard = idCard;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getIdCard() {
return idCard;
}
public void setIdCard(int idCard) {
this.idCard = idCard;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
Student student = (Student) o;
return idCard == student.idCard && age == student.age && Objects.equals(name, student.name);
}
}
package cn.bdqn.demo04;
import java.sql.SQLOutput;
public class Test {
public static void main(String[] args) {
Student stu1=new Student("张三",1234,22);
Student stu2=new Student("xx",1234,22);
System.out.println(stu1.equals(stu2));
}
}
边栏推荐
猜你喜欢
No regrets, the appium automation environment is perfectly built
多御安全浏览器新版下载 | 功能优秀性能出众
Detailed explanation of Mysql's undo log
bytebuffer 内部结构
不看后悔,appium自动化环境完美搭建
[CISCN2019 South China Division]Web11
There are several common event handling methods in Swing?How to listen for events?
Event parse tree Drain3 usage and explanation
C++ core programming
虚证、实证如何鉴别?
随机推荐
为什么刚考完PMP,就开始准备软考了?
UE4 opens doors with overlapping events
bytebuffer put flip compact clear 方法演示
Redis1: Introduction to Redis, basic features of Redis, relational database, non-relational database, database development stage
DEJA_VU3D - Cesium功能集 之 058-高德地图纠偏
token、jwt、oauth2、session解析
Mini Program_Dynamic setting of tabBar theme skin
No regrets, the appium automation environment is perfectly built
Ali's local life's single-quarter revenue is 10.6 billion, Da Wenyu's revenue is 7.2 billion, and Cainiao's revenue is 12.1 billion
[8.2] Code Source - [Currency System] [Coins] [New Year's Questions (Data Enhanced Edition)] [Three Stages]
UE4 通过与其它Actor互动开门
【背包九讲——01背包问题】
MySql的索引学习和使用;(本人觉得足够详细)
flink reads mongodb data source
[GYCTF2020]EasyThinking
【8.3】代码源 - 【喵 ~ 喵 ~ 喵~】【树】【与】
UE4 为子弹蓝图添加声音和粒子效果
【8.4】代码源 - 【数学】【历法】【删库】【不朴素的数列(Bonus)】
36-Jenkins-Job Migration
机器学习概述