标签:style blog http ar 使用 sp on 文件 div
今天在云和学院复习了之前学的C#知识
面向对象
练习:磁盘上有不同的文件,比如:.txt文本文件、.doc视频文件、.xls电子表格。要求:编写一个控制台程序,用户输入一个带后缀名的文件,将该文件名传递到一个方法中,该方法中根据用户输入的文件名后缀,返回一个对应的文件对象。提示:编写不同的类模拟不同的文件、为不同的文件类创建统一的父类、使用简单工厂实现。

class Program
{
static void Main(string[] args)
{
Console.WriteLine("请输入文件名:");
string strname=Console.ReadLine();
factory fa = new factory();
AbFile af = fa.CreateFile(strname);
af.GetFileName();
Console.ReadKey();
}
}
}
abstract class AbFile
{
abstract public void GetFileName();
}
class doc:AbFile
{
public override void GetFileName()
{
Console.WriteLine("我是doc文件,用Word文档打开");
}
}
class txt:AbFile
{
public override void GetFileName()
{
Console.WriteLine("我是一个txt文件,用记事本打开");
}
}
class xls:AbFile
{
public override void GetFileName()
{
Console.WriteLine("我是xls文件,用Exel表打开");
}
}
class factory
{
public AbFile CreateFile(string filename)
{
string[] str = filename.Split(‘.‘);
switch(str[1])
{
case "txt":return new txt();
case "doc": return new doc();
default: return new xls();
}
}
}
虚方法、抽象方法
abstract class Animal
{
public string Name { set; get; }
abstract public void Eat();
abstract public void Berk();
}
class Cat:Animal
{
public override void Eat()
{
Console.WriteLine("猫吃鱼");
}
public override void Berk()
{
Console.WriteLine("喵喵");
}
}
class Dog:Animal
{
public override void Eat()
{
Console.WriteLine("狗吃骨头");
}
public override void Berk()
{
Console.WriteLine("汪汪");
}
}
class Program
{
static void Main(string[] args)
{
Cat c = new Cat();
c.Berk();
c.Eat();
Dog d = new Dog();
d.Berk();
d.Eat();
Console.ReadKey();
}
}

标签:style blog http ar 使用 sp on 文件 div
原文地址:http://www.cnblogs.com/songfang/p/4138366.html