Java方法重载,方法覆盖,方法隐藏的区别

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

Java方法重载,方法覆盖,方法隐藏的区别

  • 前言
  • 一、方法覆盖
  • 二、方法重载
  • 二、方法隐藏


前言

今天笔者在复习Java方法继承的问题时候,发现这个出现了方法重载,方法覆盖,方法隐藏这三个名词,于是我决定好好区别一下他们。

我首先创建的一个父类 Father和继承父类的子类 Son


一、方法覆盖

子类可以定义与父类中的名字,参数列表,返回值类型都相同的方法,这是子类的方法就叫做覆盖(overriding)或重写了父类的方法
Java方法重载,方法覆盖,方法隐藏的区别_第1张图片
这里可以看到创建了子类实例,并分别用int型和double型的数据作为参数,可以看到最后结果都是double型号的,说明子类方法会自动将int型的数据转换为double型数据



二、方法重载

方法重载是在一个类中定义多个名称相同但参数不同的方法,若子类从父类继承来相同的方法名但参数不同也是实现了对方法的重载

如下图可加深对方法重载的理解,与上图创建的父类子类不同的是,父类Father类创建的display方法的形参是double型的,而子类Son类创建的display方法的形参是int型的

Java方法重载,方法覆盖,方法隐藏的区别_第2张图片

从图中我们可以看到,son.display(1)调用的是子类的方法,而son.display(1.0)调用的是父类的方法,由此可见,这是方法的重载



二、方法隐藏

父类中的static方法可以被继承,但是不能被覆盖。如果子类中定义了与父类中的static方法一样的方法,那么父类中的方法被隐藏。父类中的被隐藏的static方法仍然可以使用"类名.方法名()"形式调用

Java方法重载,方法覆盖,方法隐藏的区别_第3张图片



你可能感兴趣的:(Java基础,java,开发语言)