面向对象设计之:多态
来源:互联网 发布:硬盘录像机网络设置 编辑:程序博客网 时间:2024/05/17 15:17
实现多态的两种方式 接口和抽象类
抽象类
using System;
using System.Collections.Generic;
using System.Text;
namespace Eric.DotNet
{
class Program
{
static void Main(string[] args)
{
Person aPerson = null;
aPerson = new PersonAtHome();
aPerson.Name = "Eric liu";
aPerson.Age = 27;
aPerson.DoWork();
Console.Write("/r/n==========================================/r/n");
aPerson = new PersonAtSchool();
aPerson.DoWork();
Console.Write("/r/n==========================================/r/n");
Console.Read();
}
}
abstract class Person
{
private string _name;
private Int32 _age;
public string Name
{
set { this._name = value; }
get { return this._name; }
}
public Int32 Age
{
get { return this._age; }
set { this._age = value; }
}
public abstract void DoWork();
}
interface IPerson
{
}
class PersonAtHome : Person
{
public override void DoWork()
{
Console.WriteLine(Name + " 我是爸爸妈妈的孩子");
}
}
class PersonAtSchool : Person
{
public override void DoWork()
{
Console.WriteLine(Name + "我是老师的学生");
}
}
class PersonAtBus : Person
{
public override void DoWork()
{
Console.WriteLine(Name + "我是司机的乘客");
}
}
}
接口
using System;
using System.Collections.Generic;
using System.Text;
namespace Eric.DotNet
{
class Program
{
static void Main(string[] args)
{
IPerson aPerson = null;
aPerson = new PersonAtHome();
aPerson.Name = "Eric liu";
aPerson.Age = 27;
aPerson.DoWork();
Console.Write("/r/n==========================================/r/n");
aPerson = new PersonAtSchool();
aPerson.DoWork();
Console.Write("/r/n==========================================/r/n");
Console.Read();
}
}
interface IPerson
{
string Name
{
get;
set;
}
Int32 Age
{
get;
set;
}
void DoWork();
}
class PersonAtHome : IPerson
{
private string _name;
private Int32 _age;
public string Name
{
get { return this._name; }
set { this._name = value; }
}
public Int32 Age
{
get { return this._age; }
set { this._age = value; }
}
public void DoWork()
{
Console.WriteLine(Name+" 我是爸爸妈妈的孩子");
}
}
class PersonAtSchool : IPerson
{
private string _name;
private Int32 _age;
public string Name
{
get { return this._name; }
set { this._name = value; }
}
public Int32 Age
{
get { return this._age; }
set { this._age = value; }
}
public void DoWork()
{
Console.WriteLine(Name + "我是老师的学生");
}
}
class PersonAtBus : IPerson
{
private string _name;
private Int32 _age;
public string Name
{
get { return this._name; }
set { this._name = value; }
}
public Int32 Age
{
get { return this._age; }
set { this._age = value; }
}
public void DoWork()
{
Console.WriteLine(Name + "我是司机的乘客");
}
}
}
- 面向对象设计之:多态
- 面向对象之设计
- 面向对象之设计
- 设计模式之面向对象
- 面向对象之设计模式
- 设计模式之面向对象
- 设计模式之面向对象
- 【设计模式】面向对象之封装、继承、多态
- 面向对象-设计模式(多态)
- 面向对象的设计原则之总结
- c#面向对象设计模式之Singleton
- C#面向对象设计模式之:Singleton
- C#面向对象设计模式之:Builder
- 面向对象设计模式---之代理模式
- 面向对象设计模式---之代理模式
- 大话设计模式之面向对象基础
- 设计模式学习之面向对象思维
- 面向对象与设计模式之我见
- Spring之IOC
- 开始投靠C#,入门版(一)
- 论裸睡
- How to Pass IList As parameter to wcf service
- C++的构造函数与重载
- 面向对象设计之:多态
- 技术解析:什么是模式? 什么是框架?
- u-boot编译错误(一)
- 传说中的花语全套
- 培养自制的七步骤
- RAM,ROM,FLASH存储器分类
- 循环队列实现高速缓存的读写
- csdn,救人于水火!
- 最近复习一下计算机原理熟悉了一下CPU寄存器知识