总结
2015-09-21 22:58
281 查看
C#中的引用传递、值传递。
作用:子类可以对父类中的虚方法进行重写,虚方法是多态特性的一种体现
3虚方法
C#中的虚方法使用virtual关键字定义
override关键字作用是对父类的virtual方法进行重写
代码举例:
1、传递值类型参数
值类型变量直接包含其数据,这与引用类型变量不同,后者包含对其数据的引用。因此,向方法传递值类型变量意味着向方法传递变量的一个副本。方法内发生的对参数的更改对该变量中存储的原始数据无任何影响。如果希望所调用的方法更改参数的值,必须使用 ref 或 out 关键字通过引用传递该参数。2、传递引用类型参数
引用类型的变量不直接包含其数据;它包含的是对其数据的引用。当通过值传递引用类型的参数时,有可能更改引用所指向的数据,如某类成员的值。但是无法更改引用本身的值;也就是说,不能使用相同的引用为新类分配内存并使之在块外保持。若要这样做,应使用 ref 或 out 关键字传递参数。作用:子类可以对父类中的虚方法进行重写,虚方法是多态特性的一种体现
3虚方法
C#中的虚方法使用virtual关键字定义
public virtual void eat();
override关键字作用是对父类的virtual方法进行重写
public override void eat();
代码举例:
using System; using System.Collections; public class Animal { public Animal() { } public virtual void eat() { } } public class dog:Animal { public override void eat() { //如果父类的虚方法中有我们需要的数据,可以在子类的覆盖方法中调用它: //base.eat(); Console.WriteLine("狗吃骨头"); } } public class cat:Animal { public override void eat() { Console.WriteLine("猫吃鱼"); } } public class panda:Animal { public override void eat() { Console.WriteLine("熊猫吃竹子"); } } public class MainFun { static void Main() { Animal[] anim = new Animal[3]; anim[0] = new dog(); anim[1] = new cat(); anim[2] = new panda(); anim[0].eat(); anim[1].eat(); anim[2].eat(); } }
相关文章推荐
- C语言程序初体验-第四课-第三题:温度转换
- main()参数int argc,int *argv[]的学习
- hdoj 1016 Prime Ring Problem
- HDU 1495 非常可乐 (BFS)
- docker技术网址
- Android Eclipse - Could not find *.apk
- 仅安装GI软件时的root.sh
- 启动Activity并返回结果
- 分布式MySQL数据库TDSQL架构分析
- Postgresql中的分组函数(group by 和 having)
- jsRender模板引擎
- Victor and World(spfa+状态压缩dp)
- USACO 1.5 Number Triangles (DP动态规划)
- java设计模式:创建者模式Builder pattern
- 物欲横流的当下如何防止青春被消费利用
- 打包运行storm代码
- MVC学习笔记-01
- 后缀数组
- Linux系统--Linux进程与作业管理(2)
- java判断身份证信息小程序(无图形界面)