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();
            }
        }
    

  • 相关阅读:
    MR中简单实现自定义的输入输出格式
    简单实现CombineFileInputFormat
    提高mapreduce性能的七点建议
    MR中使用sequnceFIle输入文件
    Hive中使用LZO
    JVM启动参数详解 (转)
    ubuntu12.04中shell脚本无法使用source的原因及解决方法
    hadoop 错误
    poj 3211 Washing Clothes
    hdu 3535 AreYouBusy
  • 原文地址:https://www.cnblogs.com/songfang/p/4138366.html
Copyright © 2011-2022 走看看