我是一个菜鸟,我只是在努力,2021正视自己,面对2021!

C#基础系列第五篇

前言: 完全是我在学习过程中记录的笔记,只不过分享一下让很多刚开始学习.net编程的人能够很快的学会C#语言

  1. 多态的一些说明

 (1) 多态就是为了程序的可扩展性

 (2)多态的使用:将不同的对象当作父类来看,屏蔽掉各个对象间的不同,写出通用代码,做出通用编程,同样调用不同结果,以适应需求的不断变化

 (3)ToString方法有Object提供,使得所有的类型均可以使用Console.WriteLine()方法

            class Person

            {

                   public string Name { get; set; }

                   public int Age { get; set; }

                   //当写第三个的时候写入下面的方法

                   public override string ToString()

                   {

                          return Name;

                   }

            }

            class Program

            {

                   static void Main(string[] args)

                   {

                          int[] nums = { 1, 34, 4, 65, 7, 87, 454 };

                          Console.WriteLine(nums);

                          //输出:System.Int32[]

                          //准备对象

                          Person p = new Person();

                          p.Name = "韩迎龙";

                          p.Age = 19;

                          Console.WriteLine(p);

                          //输出:智能机器.Person

                          //第三个

                          Person p1 = new Person();

                          p1.Name = "韩迎龙";

                          p1.Age = 19;

                          Console.WriteLine(p);

                          //输出张三

                          Console.ReadKey();

                   }

            }

 (4)多态的保障

            1)继承,相同名字的方法(重载不算)

            2)里氏转换原则

 (5)is和as

            1)判断父类继承

            2)判断接口实现

            3)判断拆箱和装箱

  2.多态实现计算器

  3. 抽象方法

 (1) 父类提供一个可以被重写的方法,有子类重写,通过父类,new子类来调用

 (2)父类不需要方法体

 (3)语法:[public] abstract 返回类型 方法名(参数);

                   和方法相比有以下几点需要注意的:

                   1)去掉方法体,直接在圆括号结束的时候加分号

                   2)加上abstract进行修饰

 (4)抽象方法只允许在抽象类中存在

            1)只要在class关键字前面用abstract修饰即可

                   abstract class 类名

                   {

                          //成员

                   }

(5)抽象方法,抽象类就是为了被子类继承,重写的

 (6)抽象方法的细节

            1)抽象类中可以包含什么东西?

                   ->比一般类多了抽象成员

                   ->抽象成员有有什么:方法,属性,索引器,事件声明

            2)抽象类不允许实例化,不能new

            3)抽象类可以有构造方法

            4)抽象类可以来源于非抽象类

                   class MyBase

                   {

                   }

                   abstract class Test : MyBase

                   {

                          public abstract void Func();

                   }

                   class MySub : Test

                   {

                          public override void Func()

                          {

                                 Console.WriteLine("抽象类可以来源于非抽象类");

                          }

                   }

            5)抽象类必须被子类重写,除非子类也是抽象的

 (7)练习:有一个形状Shape类,派生出圆Circle,矩形Rectangle和正方形Square,分别计算他们的面积Area和周长Perimeter 

 (8)抽象属性

            1)使用abstract修饰

            2)去掉方法体

            3)语法:public abstract 返回类型 属性

                          {

                                 get;

                                 set;

                          }

            4)自动属性必须包含get,set方法

            5)抽象属性可以定义只读,只写,

 (9)由子类实现抽象属性的方法

            1)用override重写属性

            2)添加一个字段,使用属性

  1. 面向对象计算器(简单工厂计算器)
posted @   Kencery  阅读(1395)  评论(0编辑  收藏  举报
编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
友情链接:初心商城
点击右上角即可分享
微信分享提示