【零基础学Java】—重写(二十)

简介: 【零基础学Java】—重写(二十)

一、重写和重载

  • 重写(Override):在继承关系当中,方法的名称一样,参数列表一样。重写又称为方法的覆盖、覆写。
  • 重载(Overload):方法的名称一样,参数列表不一样
  • 方法的覆盖重写的特点:创建的是子类对象,则优先使用子类方法

方法覆盖重写的注意事项:

  • 必须保证父子类之间方法的名称相同,参数列表也相同
  • @Override:写在方法的前面,用来检测是不是有效的正确覆盖重写,这个注解就算不写,只要满足要求,也是正确的方法覆盖重写
  • 子类方法的返回值必须小于等于父类方法的返回值
  • java.lang.Object类是所有类的公共最高父类(祖宗类), java.lang.String就是Object的 子类
  • 子类方法的权限必须【大于等于】父类方法中的权限修饰符
  • 小扩展提示:public>protected>(default)>private( 备注:(default)不是关键字default ,而是什么都不写,留空)
    二、在这里插入代码片
public class Phone {
    public  void call(){
        System.out.println("打电话");
    }
    public void send(){
        System.out.println("发短信");
    }
    public void show(){
        System.out.println("显示号码");
    }
}
//定义一个新手机使用老手机作为父类
public class newPhone extends Phone {
    @Override
    public void show() {
        super.show();//把父类的show方法拿过来重复使用
        //自己子类再来添加更多的内容
        System.out.println("显示姓名");
        System.out.println("显示头像");
    }
}
/**
 * @author :CaiCai
 * @date : 2022/4/9 15:15
 */
public class demo01Phone {
    public static void main(String[] args) {
        Phone phone =new Phone();
        phone.call();
        phone.send();
        phone.show();
        System.out.println("=======");
        newPhone NewPhone=new newPhone();
        NewPhone.call();
        NewPhone.send();
        NewPhone.show();
    }
}

二、继承中构造方法的访问特点

继承关系中,父子类构造方法的访问特点:

1、子类构方法中有一个默认隐含的super()调用,所以一定是先调用的父类构造方法,后执行的子类构造

2、子类构造可以通过super关键字来子类构造调用父类重载构造

3、super的父类构造调用,必须是子类构造方法的第一个语句,不能一个子类构造调用多次super构造

总结:子类必须调用父类构造方法,不能赠送super(),写了则用写的super指定调用,super只能有一个,还必须是第一个

三、super关键字的三种形式

  • 在子类的成员方法中,访问父类的成员变量
  • 在子类的成员方法中,访问父类的成员方法
  • 在子类的构造方法中,访问父类的构造方法


相关文章
|
1月前
|
Java 编译器
在Java中,关于final、static关键字与方法的重写和继承【易错点】
在Java中,关于final、static关键字与方法的重写和继承【易错点】
21 5
|
2月前
|
Java 编译器 数据安全/隐私保护
Java 重写(Override)与重载(Overload)详解
在 Java 中,重写(Override)和重载(Overload)是两个容易混淆但功能和实现方式明显不同的重要概念。重写是在子类中重新定义父类已有的方法,实现多态;重载是在同一类中定义多个同名但参数不同的方法,提供多种调用方式。重写要求方法签名相同且返回类型一致或为父类子类关系,而重载则关注方法参数的差异。理解两者的区别有助于更好地设计类和方法。
|
3月前
|
Java
【Java基础面试十八】、说一说重写与重载的区别
这篇文章阐述了Java中重写与重载的区别:重载是同一个类中方法名相同但参数列表不同的方法之间的关系,而重写是子类中方法与父类中相同方法名和参数列表的方法之间的关系,且子类的返回值应小于等于父类,访问修饰符应大于等于父类。
【Java基础面试十八】、说一说重写与重载的区别
|
3月前
|
存储 Java
|
3月前
|
Java
【Java基础面试二十二】、为什么要重写hashCode()和equals()?
这篇文章解释了为什么需要重写`hashCode()`和`equals()`方法:因为Object类的`equals()`默认使用`==`比较,这在业务中通常是不够的,我们需要根据对象内容来比较相等性;同时,为了保持`hashCode()`与`equals()`的联动关系,一旦重写了`equals()`,通常也需要重写`hashCode()`。
【Java基础面试二十二】、为什么要重写hashCode()和equals()?
|
3月前
|
Java
【Java基础面试十九】、构造方法能不能重写?
这篇文章指出Java中的构造方法不能被重写,因为构造方法必须与类名相同,而重写要求子类方法与父类方法同名,允许构造方法重写将违背这一规则。
【Java基础面试十九】、构造方法能不能重写?
|
3月前
|
Java
Java 新手入门:重载和重写傻傻分不清?一篇文章带你清晰理解!
Java 新手入门:重载和重写傻傻分不清?一篇文章带你清晰理解!
37 0
Java 新手入门:重载和重写傻傻分不清?一篇文章带你清晰理解!
|
4月前
|
存储 Java 索引
java 中为什么重写 equals 后需要重写 hashCode
java 中为什么重写 equals 后需要重写 hashCode
66 8
|
3月前
|
Java
描述 Java 中的重载和重写
【8月更文挑战第22天】
19 0
|
3月前
|
存储 Java 索引