首先,重写和隐藏是发生在两个类中的,而重载可以发生在一个类中。

重写的概念就是顾名思义了:重新写一遍;方法名、参数及返回值是一模一样的,可能实现的过程不一样,为什么要重写?因为原来的方法不够perfect 或者不够strong,或者达不到开发者的实际应用要求。

重载是当多个方法享有相同的名字,但是这些方法的参数不同,或者是参数的个数不同,或者是参数类型不同时。就叫方法的重载
要注意的是:返回类型不能用来区分重载的方法,仅仅返回类型不同的两个同名方法是个error,这点比较容易理解了:如果你写参数一模一样的但是返回类型不一样的方法,当调用的时候,编译器没法决定调哪个好

隐藏
如下,是华为的一道面试题

public      class      classA{   
           public      void      methodOne(int      i){      }   
           public      void      methodTwo(int      i){      }   
           public      static      void      methodThree(int      i){      }   
           public      static      void      methodFour(int      i){      }   
     }   
   
     public      class      classB      extends      classA{   
           public      static      void      methodOne(int      i){      }   
           public      void      methodTwo(int      i){      }   
           public      void      methodThree(int      i){      }   
           public      static      void      methodFour(int      i){      }   
     }

1     问那些方法隐藏了父类的方法?   
2     问那些方法覆盖了父类的方法?

上题中的重写是很明显的,那就是methodTow.而methodOne和methodThree就比较明显的是个错误了,子类继承父类,两个相同的方法一个是static的,一个不是,你让编译器怎么实例化啊! 那剩下的就是隐藏了:static 类型的方法是不能被覆盖的;也就是说子类的methodFour写了也没用,还是调用父类的methodFour方法,因此methodFour方法隐藏了父类的方法.
Sample:
public class father{
       public static void overwritting(){
           System.out.print("father method");
       }
}

public class son extends father{
       public static void overwritting(){
           System.out.print("son method");
       }
       public static void main(String args[]){
           father son=new son();
          son.overwritting();
       }
}
以上程序的运行结果就是输出了:father method

转载于:https://www.cnblogs.com/zcy_soft/archive/2010/10/02/1841170.html

方法的重写、重载及隐藏相关推荐

  1. C++中的覆盖(重写)、重载、隐藏(重定义)、多态!

    例一: 首先声明Base类型的指针指向实际类型为Derived的对象,先调用基类构造函数,再调用派生类构造函数.输出Base, Derived. base->echo(); 指针是base类型, ...

  2. 重写 隐藏 java_Java中方法的重写与成员变量的隐藏

    这篇文章讨论了Java面向对象概念中一个基本的概念?Field Hiding(隐藏成员变量) 在讨论这个问题之前,我们看一段特别特别简单的代码,请问一下方法的数据结果是什么? /** * @autho ...

  3. 面试准备每日五题:C++(八)——重写重载隐藏、vector相关

    文章目录 1. 重写.重载和隐藏 2. 链表和数组有什么区别 3. vector的底层原理 4. vector的reserve和resize 5.vector迭代器失效的情况 1. 重写.重载和隐藏 ...

  4. java 隐藏父类方法,java 子类继承父类成员变量的隐藏、实现方法的重写

    成员变量的隐藏和方法的重写 Goods.java public class Goods { public double weight; public void oldSetWeight(double ...

  5. 方法的重写和重载,接口和抽象类区别

    方法的重写和重载,接口和抽象类区别,新手入门必看!!!!!要记住 方法的重写和重载 重写 重载 接口和抽象类 说明 方法的重写和重载 重写 在Java程序中,类的继承关系可以产生一个子类,子类继承父类 ...

  6. 2020.1.30 封装和隐藏(四种访问权限修饰符)、this、JavaBean、继承、方法的重写

    面对对象特征之一:封装和隐藏 Java中通过数据声明为私有的(private),再提供公共的(public)方法:getXxx()和setXxx()实现对属性的操作. 四种访问权限修饰符 在同一个ja ...

  7. “类的使用”编程规范(一)覆写(重写)、重载、隐藏、遮蔽、遮掩

    "类的使用"编程规范(一) 1调用静态方法的注意事项 当子类继承父类的静态方法时,如果直接用实例来调用就会将子类中的静态方法隐藏,结果显示为父类的静态方法. package Tas ...

  8. 009-对象—— 构造方法__construct析构方法__destruct使用方法 PHP重写与重载

    <?php /**构造方法__construct析构方法__destruct使用方法 PHP重写与重载*/ //构造方法:当实例化对象时,自动运行的方法 /*class channel{func ...

  9. 27、Python 面向对象(创建类、创建实例对象、访问属性、内置类属性、对象销毁、类的继承、方法重写、基础重载方法、运算符重载、类属性与方法、下划线双下划线)

    27Python面向对象(Python2) Python从设计之初就已经是一门面向对象的语言,正因为如此,在Python中创建一个类和对象是很容易的.本章节我们将详细介绍Python的面向对象编程. ...

  10. 02-24 面向对象--方法重载、隐藏

    在面向对象思想中,由于基本特性--继承所致,产生了子类继承父类的关系,所以出现重载方法. 由于子类对象同事"汇聚了"父类和子类的方法所有公共方法,而C#并未对子类和父类的方法名称过 ...

最新文章

  1. Java Properties 类
  2. Web Cookie详解
  3. 如何写好一份竞品运营分析报告?
  4. XCTF-高手进阶区:web2
  5. JfreeChart(八)之甘特图
  6. python中history()_keras中的History对象用法
  7. 改变checkbox样式问题
  8. ASP.NET应用开发心得
  9. Python Imaging Library: ImageMath Module(图像数学运算模块)
  10. 正则表达式之非捕获组
  11. Eclipse技巧一:还原视图和编辑器
  12. Caliburn.Micro学习笔记(五)----协同IResult
  13. 桌面计算机休眠快捷键,电脑休眠唤醒快捷键
  14. ArcGIS动态表格扩展模块Mapping and Charting Solutions使用教程及下载地址
  15. Shopee平台有哪些电商大促活动?大促活动如何报名?
  16. origin柱状图显示具体数据值
  17. (KWS-LSTM)Max-pooling loss training of long short-term memory networks for small-footprint keyword s
  18. 手机共享电脑的proxy网络
  19. Verilog 中signed和$signed()的用法
  20. linux与window双引导U盘启动

热门文章

  1. leetcode —— 面试题17. 打印从1到最大的n位数
  2. leetcode - 5. 最长回文子串
  3. MAC系统下解决Teamviewers检测出商业限时问题
  4. 网络爬虫之Url含有中文如何转码
  5. 用simulink分析傅里叶变换、短时傅里叶变换和小波变换
  6. SpringMVC处理异常
  7. Oracle管理权限和角色
  8. Android和Linux kernel发展史
  9. 如何在不同开发语言中使用绑定变量_linux C/C++服务器后台开发面试题总结(编程语言篇)...
  10. centos iptables_SQLyog远程连接centos中mysql数据库