java方法重写(重点讲),方法重载问题

 更新时间:2024年05月01日 08:48:33   作者:低调的根儿哥  
这篇文章主要介绍了java方法重写(重点讲),方法重载问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

一、方法重载

定义:一个类中,出现多个方法的名称相同,但是它们的形参列表是不同的,那么这些方法就称为方法重载了。

注意:一个类中,只要一些方法的名称相同、形参列表不同,那么它们就是方法重载了,其它的都不管(如:修饰符,返回值类型是否一样都无所谓)。

形参列表不同指的是:形参的个数、类型、顺序不同,不关心形参的名称。

应用场景:开发中我们经常需要为处理一类业务,提供多种解决方案,此时用方法重载来设计是很专业的

二、方法重写

定义:当子类觉得父类中的某个方法不好用,或者无法满足自己的需求时,子类可以重写一个方法名称、参数列表一样的方法,去覆盖父类的这个方法,这就是方法重写。

注意:重写后,方法的访问,Java会遵循就近原则。

上面代码说明方法重写了,是一个案例,小伙伴们可以看一下,多在继承中使用。

一些方法重写的注意事项:

重写小技巧:使用Override注解,他可以指定java编译器,检查我们方法重写的格式是否正确,代码可读性也会更好(人家一眼就知道这个方法是重写的)。

子类重写父类方法时,访问权限必须大于或者等于父类该方法的权限( public > protected>缺省)。

(图上的字有点问题,应该是大于等于A类的原方法)

重写的方法返回值类型,必须与被重写方法的返回值类型一样,或者范围更小。

私有方法、静态方法不能被重写,如果重写会报错的。

注意事项这么多哈哈哈,那就把原来的方法的声明不变(参数,返回值,方法名称啥的),就改变里面的方法内容 。即“声明不变,内容重写”。

应用场景:当子类觉得父类的方法不好用,或者不满足自己的需求时,就可以用方法重写。

例子:子类重写Object类的toString()方法,以便返回对象的内容。

我们直接输出对象,其实默认会调object类的toString方法,然后返回该对象的地址,但是我们拿着这个地址也没用,所以会重写这个toString方法来让其返回该对象的内容,才是我们一般所需要的。

(注:object类是默认继承的,重写的方法是就近调的,所以会调用重写的toString方法)

例子:

写了一个Student类,定义了name,age两个成员变量,以及有参无参构造器,还有两个成员变量的getter,setter方法,齐活!(这些是标配),然后重写了toString方法,让其按照想要展示格式输出变量的值,而不是地址。

重写toString方法可以自己写,idea也有快捷方式,右键,选择Generate,选择toString(),选择想要重写(展示)的变量,点击ok即可。

步骤如下图所示,最后一张是编译器写好的toString方法。

在Test方法中创建对象,并赋值,并输出,看是否调用了重写的toString方法。结果输出显示是调用成功了。

以下附上两个类的代码:

Test.java

public class Test {
    public static void main(String[] args) {
//        创建一个Student对象,直接输出它
        Student  student= new Student();
        student.setName("张三");
        student.setAge(19);
        System.out.println(student);
     }
 
}

Student.java

 
public class Student {
    private String name;
    private int age;
//无参,有参构造器
    public Student() {
    }
 
    public Student(String name, int age) {
        this.name = name;
        this.age = age;
    }
//getter,setter方法
    public String getName() {
        return name;
    }
 
    public void setName(String name) {
        this.name = name;
    }
 
    public int getAge() {
        return age;
    }
 
    public void setAge(int age) {
        this.age = age;
    }
 
//  重写object类的toString方法
    @Override
    public String toString(){
        return  "Student{"+ "name:"+name+",age:"+age+"}";
    }
 
 
}

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Springboot项目消费Kafka数据的方法

    Springboot项目消费Kafka数据的方法

    本文详细介绍了如何在Spring Boot项目中配置和实现Kafka消费者和生产者,结合实例代码给大家介绍的非常详细,感兴趣的朋友一起看看吧
    2025-01-01
  • java使用JOptionPane猜数字游戏

    java使用JOptionPane猜数字游戏

    这篇文章主要为大家详细介绍了java使用JOptionPane猜数字游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-05-05
  • Spring Boot 事务示例详解

    Spring Boot 事务示例详解

    Spring Boot 提供了强大的事务管理功能,通过 @Transactional 注解可以方便地配置事务的传播行为和属性,理解和合理应用这些配置,可以有效地提高应用程序的数据一致性和完整性,本文介绍Spring Boot 事务的相关知识,感兴趣的朋友一起看看吧
    2025-04-04
  • IDEA中的maven没有dependencies解决方案

    IDEA中的maven没有dependencies解决方案

    这篇文章主要介绍了IDEA中的maven没有dependencies解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-05-05
  • SpringBoot整合kafka遇到的版本不对应问题及解决

    SpringBoot整合kafka遇到的版本不对应问题及解决

    这篇文章主要介绍了SpringBoot整合kafka遇到的版本不对应问题及解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-03-03
  • Springboot校验工具类详细代码示例

    Springboot校验工具类详细代码示例

    这篇文章主要给大家介绍了关于Springboot校验工具类的相关资料,工具类里面主要是封装了一些常用字段验证方法,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2024-02-02
  • SpringBoot配置数据库密码加密的实现

    SpringBoot配置数据库密码加密的实现

    这篇文章主要介绍了SpringBoot配置数据库密码加密的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-03-03
  • java校验String是否符合时间格式yyyy-MM-dd HH:mm:ss的几种方法

    java校验String是否符合时间格式yyyy-MM-dd HH:mm:ss的几种方法

    在实际项目开发中,跟时间参数打交道是必不可少的,为了保证程序的安全性、健壮性,一般都会对参数进行校验,这篇文章主要介绍了java校验String是否符合时间格式yyyy-MM-dd HH:mm:ss的几种方法,需要的朋友可以参考下
    2025-07-07
  • 如何利用JConsole观察分析Java程序的运行并进行排错调优

    如何利用JConsole观察分析Java程序的运行并进行排错调优

    从Java 5开始 引入了 JConsole。JConsole 是一个内置 Java 性能分析器,可以从命令行或在 GUI shell 中运行。您可以轻松地使用 JConsole(或者,它更高端的 “近亲” VisualVM )来监控 Java 应用程序性能和跟踪 Java 中的代码
    2015-12-12
  • Springboot通过谷歌Kaptcha 组件生成图形验证码功能

    Springboot通过谷歌Kaptcha 组件生成图形验证码功能

    Kaptcha是谷歌开源的一款简单实用的图形验证码组件。我个人推荐它的最大原因是容易上手,采用约定大于配置的方式,快速契合到项目中,这篇文章主要介绍了Springboot通过谷歌Kaptcha组件生成图形验证码的方法,需要的朋友可以参考下
    2023-05-05

最新评论