zoukankan      html  css  js  c++  java
  • Net基础复习

    今天在云和学院复习了之前学的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();
            }
        }
    

  • 相关阅读:
    POJ 3041 Asteroids 最小点覆盖 == 二分图的最大匹配
    POJ 3083 Children of the Candy Corn bfs和dfs
    POJ 2049 Finding Nemo bfs 建图很难。。
    POJ 2513 Colored Sticks 字典树、并查集、欧拉通路
    POJ 1013 Counterfeit Dollar 集合上的位运算
    POJ 2965 The Pilots Brothers' refrigerator 位运算枚举
    无聊拿socket写的100以内的加法考试。。。
    POJ 1753 Flip Game
    初学socket,c语言写的简单局域网聊天
    汇编语言 复习 第十一章 标志寄存器
  • 原文地址:https://www.cnblogs.com/songfang/p/4138366.html
Copyright © 2011-2022 走看看