继承和多态理解(C#)
来源:互联网 发布:淘宝怎么查询客服业绩 编辑:程序博客网 时间:2024/04/29 05:04
下面通过一个不同类型人(年轻人,老年人)来演示继承和多态的综合应用:
C# Code:
abstract class PersonStyle { /// <summary> /// 使用可见修饰符定义类成员,派生类将会继承它 /// </summary> protected string name; protected string category; public PersonStyle(string Name, string Category) { name = Name; category = Category; } /// <summary> /// 返回一个字符串包括人员的信息 /// </summary> /// <returns></returns> public override string ToString() { string result = "Name:" + name + "\n"; result +="Category:"+category+"\n"; return result; } /// <summary> /// 定义一个抽象方法可以为不同人调用 /// </summary> /// <returns></returns> public abstract string Re(); } class PersonMember { private PersonStyle[] personlist; public PersonMember() { //方法触发时引用指向的对象类型用来决定要触发哪个版本的方法 personlist = new PersonStyle[2]; personlist[0] = new OldPerson("steven", "老人"); personlist[1] = new NewPerson("wifi", "少年", "运动"); } public void SayHello() { string login; for (int count = 0; count < personlist.GetLength(0); count++) { Console.WriteLine(personlist[count]); Console.WriteLine(); login=personlist[count].Re(); Console.WriteLine(login); } } } class NewPerson:PersonStyle { private string hobby; /// <summary> /// base引用触发父类的构造函数 /// </summary> /// <param name="Name"></param> /// <param name="Category"></param> public NewPerson(string Name, string Category,string Hobby) :base(Name,Category ) { hobby =Hobby ; } public override string ToString() { string result = base.ToString(); result += "Hobby:" + hobby; return result; } /// <summary> /// 通过继承间接引用私有方法! /// </summary> /// <returns></returns> private string Sleeping() { return ("\n私有方法间接引用!"); } public override string Re() { return (Sleeping()); } } class OldPerson:PersonStyle { public OldPerson(string Name, string Category) :base(Name,Category ) { } public override string Re() { return ("重写抽象方法!\n"); } } class Inheritance { static void Main(string[] args) { PersonMember myperson = new PersonMember(); myperson.SayHello(); Console.ReadKey(); } }
- 继承和多态理解(C#)
- C继承和多态
- java继承和多态的理解
- 如何理解封装、继承和多态
- 从C语言的角度出发理解C++的封装继承和多态
- 【C++】继承和多态之——菱形继承
- 理解继承、封装和多态,分清重载和重写
- C中的继承和多态
- 【转帖】C继承和多态
- C#中的接口和继承多态
- C语言实现继承和多态
- C中的继承和多态
- C#—继承和多态
- C语言实现继承和多态
- C语言实现继承和多态
- C语言实现继承和多态
- C++[语法]公有继承和多态
- C中的继承和多态
- VMware 组网方式 host-only (XP+Linux) 图文详解
- Oracel导入文件
- 启动tomcat报错java.net.bindexception: address already in use: jvm_bind
- 扶不起的汽车企业!!!
- 应变片粘贴 http://www.jumho.cn/strain/index.asp
- 继承和多态理解(C#)
- (转)HTTP协议及其POST与GET操作差异 & C#中如何使用POST、GET等
- Android APK反编译
- ProtoBuf开发者指南
- Hive QL
- unicode转多字节字符
- 设计模式学习笔记第一章
- xcode Code Snippet Library
- Windows7“安装程序遇到错误:0x80070424 指定的服务未安装”解决方案