面向对象设计之:多态
2009-06-17 08:32
363 查看
实现多态的两种方式 接口和抽象类
抽象类
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 + "我是司机的乘客");
}
}
}
相关文章推荐
- 设计模式学习(一):java 面向对象特征:抽象、封装、多态、继承
- 黑马程序员-----java入门一DAY10------类的设计分析 面向对象多态 构造代码块
- 面向对象的设计三大特征:二 多态
- 设计模式学习笔记二:面向对象基础三之多态
- 面向对象-设计模式(多态)
- 黑马程序员----面向对象设计的封装、继承、多态特性
- Java面向对象设计多态特征理解
- 面向对象设计之五 继承与多态的危险性
- 面向对象设计模式的原则与分类
- 面向对象设计思想(C#)
- java面向对象(单例设计模式)
- 《Cracking the Coding Interview》——第8章:面向对象设计——题目8
- Android编程思想,面向对象程序设计第一篇——设计模式6个原则
- 面向对象的分析与设计OOAD
- 面向对象设计原则之一:单一职责原则
- 面向对象设计的11原则
- 黑马程序员-博客 (3) 面向对象一之类和对象、成员变量和局部变量、继承、封装、多态
- python 面向对象多继承和多态
- 设计模式-面向对象设计原则
- 设计模式(Design Patterns)-可复用面向对象软件的基础 01:简介(Abstract)