C#学习笔记001days

    技术2026-08-19  8

    001days

    1.继承 2. 方法的隐藏和重写 3. 访问权限 4. 多态 5. 枚举

    继承

    using System; namespace 继承 {class cat { public string name; //1.public cat() { } public cat(string a) { this.name = a; } } //一个子类对象在实例化前,需要先实例化父类 //实例化父类部分,默认会使用分类中无参的构造方法;不会调用有参的:两种解决方法。 //1.自己在父类中定义一个无参的构造方法,2.在这个构造方法执行前,先执行父类中有参的构造方法 class dog : cat {//2. public dog() : base("") { } } class Program { static void Main(string[] args) { Console.WriteLine("Hello World!"); } } }

    方法的隐藏和重写

    using System; //阴藏 class Animal { public void Show() { Console.WriteLine("Animal show()"); } } class cat : Animal {//方法的阴藏需要用到关键字new,父类中的方法还在,只是被阴藏了; public new void Show() { Console.WriteLine("cat show"); } } //重写:需要用到override,并且需要把父类方法定义为虚方法:virtual class father { public virtual void show() { Console.WriteLine("father show"); } } class son : father { public override void show() { Console.WriteLine("son show"); } } namespace 方法的阴藏和重写 { class Program { static void Main(string[] args) { cat a = new cat(); a.Show(); //向上传递 Animal b = new cat(); b.Show(); son c = new son(); c.show(); father d = new son(); d.show(); } } }

    访问权限

    /* public:可以用来修饰类、字段、属性和方法 生效:在整个解决方案中生效 protected internal 可以修饰字段、属性和方法 生效:1.在当前项目中生效 2.在跨项目中的子类生效 internal:可以修饰类、字段、属性和方法 生效:1.在整个项目中生效 2.类的默认访问权限就是internal protected:可以修饰字段、属性和方法 生效:1.可以在当前类中访问 2.可以在子类中访问,甚至可以跨项目的子类中访问 private:可以修饰字段、属性和方法 生效:1.只能在当前类中访问 2.子段、属性和方法的默认访问权限就是private 注意事项:1.父类的访问要大于或等于子类的访问权限 2.在public权限的类中,如果在某个字段或者某个方法中使用了非public权限的类型 程序会去要求一定要将用到的类型改成public; */

    多态

    using System; class Animal { } class Dog : Animal { } class tager : Animal { } namespace 多态_向上转型和向下转型_ { class Program { static void Main(string[] args) { //子类型转型为父类类型 //转型一定成功 //向上转型后的对象不再能够使用子类中特有的字段、属性和方法 Animal a = new Dog(); //父类类型转换成子类 //转换的过程可能会出错,需要强制类型转换 //转换失败类型为null //向下转型后的对象可以能够使用子类中特有的字段、属性和方法,必须转型成功 //向下转型前,要用is判断下类型 Dog d = new Animal() as Dog; Console.WriteLine(d==null); Dog c = a as Dog; Console.WriteLine(c); } public void h(Animal a) {//类型判断is if (a is Dog) { Console.WriteLine("是条狗,本园不收"); } } } }

    枚举

    using System; namespace 枚举 {//关键字 enum一般和switch,case使用 //语法:[访问权限修饰符]enum 枚举名{} //枚举名遵循大驼峰命名法 //枚举类型默认是int类型,可以修改类型,只能修改为整型(八种) //语法 enum season:long{} enum Season {//可以修改spring的值 //比如spring=1,后面的都加一; spring, //0 summer,//1 autumn,//2 winter//3 } class Program { static void Main(string[] args) { Season a = Season.summer; Console.WriteLine(a); Console.WriteLine((int)a); } } }
    Processed: 0.013, SQL: 9