继承和多态理解(C#)
2011-12-27 13:13
417 查看
下面通过一个不同类型人(年轻人,老年人)来演示继承和多态的综合应用:
C# Code:
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#继承与多态
- 一步一步C#——2 概念性问题:类、对象、继承、多态、面向对象
- 深入理解OOP(第一天):多态和继承(初期绑定和编译时多态)
- C#和Java的类、继承、重写与多态
- java四大特性理解(封装继承多态抽象)
- C# 基础系列--继承二(多态是不是重载)
- C# 多态理解
- Python3 与 C# 面向对象之~继承与多态
- C# 面向对象三大特性:封装、继承、多态
- 关于C#面向对象三个特征:继承,封装,多态的说明
- c# 封装 继承 多态
- 关于封装,继承,多态三个概念的简单理解
- C# OOP模型(传说中的继承封装多态)
- 对抽象,继承,多态的理解
- C#复习之继承,多态,索引
- 对于Python面向对象部分的理解(封装继承多态等等)
- 理解多态继承封装
- C#基础知识复习1代码规范-执行流程(c#)-面向对象-引用命名空间-封装-继承-访问修饰符-虚方法-静态成员-多态-抽象类等
- Java,C#,C++在继承,覆盖和多态,抽象类等几个方面的比较归纳