方法的重写、重载及隐藏
首先,重写和隐藏是发生在两个类中的,而重载可以发生在一个类中。
重写的概念就是顾名思义了:重新写一遍;方法名、参数及返回值是一模一样的,可能实现的过程不一样,为什么要重写?因为原来的方法不够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
方法的重写、重载及隐藏相关推荐
- C++中的覆盖(重写)、重载、隐藏(重定义)、多态!
例一: 首先声明Base类型的指针指向实际类型为Derived的对象,先调用基类构造函数,再调用派生类构造函数.输出Base, Derived. base->echo(); 指针是base类型, ...
- 重写 隐藏 java_Java中方法的重写与成员变量的隐藏
这篇文章讨论了Java面向对象概念中一个基本的概念?Field Hiding(隐藏成员变量) 在讨论这个问题之前,我们看一段特别特别简单的代码,请问一下方法的数据结果是什么? /** * @autho ...
- 面试准备每日五题:C++(八)——重写重载隐藏、vector相关
文章目录 1. 重写.重载和隐藏 2. 链表和数组有什么区别 3. vector的底层原理 4. vector的reserve和resize 5.vector迭代器失效的情况 1. 重写.重载和隐藏 ...
- java 隐藏父类方法,java 子类继承父类成员变量的隐藏、实现方法的重写
成员变量的隐藏和方法的重写 Goods.java public class Goods { public double weight; public void oldSetWeight(double ...
- 方法的重写和重载,接口和抽象类区别
方法的重写和重载,接口和抽象类区别,新手入门必看!!!!!要记住 方法的重写和重载 重写 重载 接口和抽象类 说明 方法的重写和重载 重写 在Java程序中,类的继承关系可以产生一个子类,子类继承父类 ...
- 2020.1.30 封装和隐藏(四种访问权限修饰符)、this、JavaBean、继承、方法的重写
面对对象特征之一:封装和隐藏 Java中通过数据声明为私有的(private),再提供公共的(public)方法:getXxx()和setXxx()实现对属性的操作. 四种访问权限修饰符 在同一个ja ...
- “类的使用”编程规范(一)覆写(重写)、重载、隐藏、遮蔽、遮掩
"类的使用"编程规范(一) 1调用静态方法的注意事项 当子类继承父类的静态方法时,如果直接用实例来调用就会将子类中的静态方法隐藏,结果显示为父类的静态方法. package Tas ...
- 009-对象—— 构造方法__construct析构方法__destruct使用方法 PHP重写与重载
<?php /**构造方法__construct析构方法__destruct使用方法 PHP重写与重载*/ //构造方法:当实例化对象时,自动运行的方法 /*class channel{func ...
- 27、Python 面向对象(创建类、创建实例对象、访问属性、内置类属性、对象销毁、类的继承、方法重写、基础重载方法、运算符重载、类属性与方法、下划线双下划线)
27Python面向对象(Python2) Python从设计之初就已经是一门面向对象的语言,正因为如此,在Python中创建一个类和对象是很容易的.本章节我们将详细介绍Python的面向对象编程. ...
- 02-24 面向对象--方法重载、隐藏
在面向对象思想中,由于基本特性--继承所致,产生了子类继承父类的关系,所以出现重载方法. 由于子类对象同事"汇聚了"父类和子类的方法所有公共方法,而C#并未对子类和父类的方法名称过 ...
最新文章
- Java Properties 类
- Web Cookie详解
- 如何写好一份竞品运营分析报告?
- XCTF-高手进阶区:web2
- JfreeChart(八)之甘特图
- python中history()_keras中的History对象用法
- 改变checkbox样式问题
- ASP.NET应用开发心得
- Python Imaging Library: ImageMath Module(图像数学运算模块)
- 正则表达式之非捕获组
- Eclipse技巧一:还原视图和编辑器
- Caliburn.Micro学习笔记(五)----协同IResult
- 桌面计算机休眠快捷键,电脑休眠唤醒快捷键
- ArcGIS动态表格扩展模块Mapping and Charting Solutions使用教程及下载地址
- Shopee平台有哪些电商大促活动?大促活动如何报名?
- origin柱状图显示具体数据值
- (KWS-LSTM)Max-pooling loss training of long short-term memory networks for small-footprint keyword s
- 手机共享电脑的proxy网络
- Verilog 中signed和$signed()的用法
- linux与window双引导U盘启动
热门文章
- leetcode —— 面试题17. 打印从1到最大的n位数
- leetcode - 5. 最长回文子串
- MAC系统下解决Teamviewers检测出商业限时问题
- 网络爬虫之Url含有中文如何转码
- 用simulink分析傅里叶变换、短时傅里叶变换和小波变换
- SpringMVC处理异常
- Oracle管理权限和角色
- Android和Linux kernel发展史
- 如何在不同开发语言中使用绑定变量_linux C/C++服务器后台开发面试题总结(编程语言篇)...
- centos iptables_SQLyog远程连接centos中mysql数据库