今天在云和学院复习了之前学的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(); } } }
虚方法、抽象方法
•关于虚方法需要注意的几点:
•1.父类中如果有方法需要让子类重写,则可以将该方法标记为virtual
•2.虚方法在父类中必须有实现,哪怕是空实现。
•3.虚方法子类可以重写(override),也可以不重写
•关于抽象方法注意的几点:
•1.需要用abstract关键字标记
•2.抽象方法不能有任何方法实现。
•3.抽象成员必须包含在抽象类中。
•4.由于抽象成员没有任何实现,所以子类必须将抽象成员重写。
•5.抽象类不能实例化,
•抽象类的作用:抽象类的作用就是为了让子类继承。
•6.抽象类中可以包括抽象成员,可以包括有具体代码的成员。
•7. 还有抽象方法不能用static修饰
练习:动物Animal 都有吃Eat和叫Bark的方法,狗Dog和猫Cat叫的方法不一样.父类中没有默认的实现所哟考虑用抽象方法。
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(); } }
时间: 2024-10-05 03:31:57