5、面向对象以及winform的简单运用(方法重载、隐藏、重写与虚方法)
方法的重载:
规定一个方法可以具有不同的实现,但方法的名称是相同的。如:
//同样是Man这个方法
public int Man(int age,int name)
{
……
}
//重载
public int Man(int age)
{
……
}
重载的存在可以在主函数调用类的时候,根据对象所需灵活调用,是一种经常会使用到的方法。
方法的隐藏:
当子类与父类拥有完全一样的方法时,便隐藏了父类的同名方法。
如果是有意隐藏,应该在相同的方法中写上new关键字,如:
class Parent
{
public void HideF()
{
System.Console.WriteLine("Parent.HideF()");
}
}
class Child:Parent //定义子类的父类
{
public new void HideF()
{
System.Console.WriteLine("Child.HideF()");
}
}
以上代码在调用Child类时的运行结果为"Child.HideF()".
如果要调用parent的HideF类,需要使用base关键字,即:
base.HideF();//调用父类被隐藏的方法
一般方法的隐藏很少被用到。
方法的重写与虚方法:
这相当于方法的隐藏,但隐藏需要强制转换,为了解决这种麻烦,在父类前面加上关键字virtual,表明这是一个虚方法,子类可以在同名方法前加关键字override重写此方法,表明对父类同名方法进行了重写。
如:人都有“会说话”的特性,我们在父类Ren中定义:
class Ren
{
public virtual void Shuohua()//父类的虚方法
{
Console.WriteLine("会说话");
}
}
我们让Men成为Ren的子类,在里面重写说话的特性为“会说英语”:
class Man:Ren
{
public override void Shuohua()//重写父类方法
{
Console.WriteLine("会说英语");
}
}
面向对象语言拥有的“虚方法调用”特性,使我们可以只用同样的一个语句,在运行时根据对象类型而执行不同的操作。
5、面向对象以及winform的简单运用(方法重载、隐藏、重写与虚方法)的更多相关文章
- 重写ValidateEntity虚方法实现可控的上下文验证和自定义验证
上篇文章介绍了ValidationAttribute和IValidatableObject.Validate验证,但是这种验证还是稍微简单了,对于复杂的实体,例如:继承过来的实体.实现某接口的实体等等 ...
- 【知了堂学习笔记】java 方法重载与重写的归纳
方法重载:Java的方法重载,就是在类中可以创建多个方法,它们可以有相同的名字,但必须具有不同的参数,即或者是参数的个数不同,或者是参数的类型不同.调用方法时通过传递给它们的不同个数和类型的参数来决定 ...
- java基础疑难点总结之成员变量的继承,方法重载与重写的区别,多态与动态绑定
1.成员变量的继承 1.1要点 子类用extends关键字继承父类.子类中可以提供新的方法覆盖父类中的方法.子类中的方法不能直接访问父类中的私有域,子类可以用super关键字调用父类中的方法.在子类中 ...
- java方法重载和重写
1.java的方法重载和重写,表示两种不同的类型.this关键字,出现在类的构造方法中,代表使用该构造方法所创建的对象.,this可以出现在实例方法中核构造方法中.但是不能出现在类方法中.实例方法只能 ...
- 隐藏父类方法的new和重写父类虚方法virtual的区别
一.代码 public class Parent { public void Method_A() { Console.WriteLine("Parent Method_A"); ...
- 1、面向对象以及winform的简单运用(开篇)
面向对象概述: 要学习好面向对象,我们应该从三个问题入手: 1.什么是面向对象? 2.为什么要面向对象? 3.该怎么面向对象? 面向对象,首先要有一个对象,那么对象是什么呢? 对象的定义是人们要进行研 ...
- c#面向对象基础 重写、虚方法、抽象类
虚方法 抽象类与抽象方法 1.书写规范: 在类前面加上abstract关键字,就成为了抽象类:在一个方法前面加上abstract关键字,就成为了抽象方法(抽象方法不能有实现方法,直接在后面加分号) 例 ...
- java中的方法——重载yu重写(转)
重载(Overloading) (1) 方法重载是让类以统一的方式处理不同类型数据的一种手段.多个同名函数同时存在,具有不同的参数个数/类型. 重载Overloading是一个类中多态性的一种表现. ...
- Java基础进阶:继承重点摘要,继承详解,方法重写注意事项,方法重载与重写的区别,抽象类,代码块, 附重难点,代码实现源码,课堂笔记,课后扩展及答案
继承重点摘要 *继承的特点: 子类在初始化之前,一定要先完成父类数据的初始化 子类在初始化之前,一定要先访问父类构造,完成父类数据的初始化 系统在每一个构造方法中默认隐藏了一句super(); 如果我 ...
随机推荐
- BI测试工具之跨数据库数据对比,支持oracle,sqlserver
应用场景: 本周在进行SIT,我帮助仅有的一个测试妹妹对部分表进行数据质量验证,第一步需要做的就是比对source与stage表的table definition 与 数据内容的一致性. 本项目使用的 ...
- node.js环境搭建
(1)Node.js安装 Node.js安装包及源码下载地址为: https://nodejs.org/download/ , 双击下载后的安装包.msi,检查Node.js版本命令:node - ...
- [转]ionic Accordion list three levels
简化后的主要代码: $scope.groups = []; for (var i = 0; i < 2; i++) { $scope.groups[i] = { name: i, items: ...
- Linux 系统常用命令汇总(六) 文件打包与压缩
文件打包与压缩 命令 选项 注解 示例 compress 文件名 压缩指定的文件,压缩后的格式为*.z compress install.log -d 解压被压缩的文件 .z为后缀的文件:compr ...
- EDM总结
1. 使用table 布局,align="center" 2. 尽量不要用padding-left ,padding-right 样式: 3. CSS的浮动定位: 4. 不 ...
- android调试模拟器启动太慢,怎样才能更快的调试程序呢?
答: 1. 模拟器不关,直接按调试按钮系统会自动重新安装软件的.
- Volley(三)—— ImageRequest & Request简介
Volley(三)—— ImageRequest & Request简介 上 篇文章我们讲 到了如何用volley进行简单的网络请求,我们可以很容易的接受到string.JsonObjec类型 ...
- Chrome 开发工具 Javascript 调试技巧
http://www.w3cplus.com/tools/dev-tips.html 一.Sources 面板介绍: Sources 面板分为左中右 3 部分左:Sources 当前页面加载的资源列表 ...
- final-----finalize----finally---区别
一.性质不同 (1)final为关键字: (2)finalize()为方法: (3)finally为为区块标志,用于try语句中: 二.作用 (1)final为用于标识常量的关键字,final标识的关 ...
- P1195 口袋的天空
P1195 口袋的天空 题目背景 小杉坐在教室里,透过口袋一样的窗户看口袋一样的天空. 有很多云飘在那里,看起来很漂亮,小杉想摘下那样美的几朵云,做成棉花糖. 题目描述 给你云朵的个数N,再给你M个关 ...