西瓜网络深圳网站建设 东莞网站建设公司网站首页怎么制作

张小明 2026/1/14 17:09:56
西瓜网络深圳网站建设 东莞网站建设,公司网站首页怎么制作,程显峰 wordpress,wordpress加个留言板抽象类关键概念总结 #x1f4cc; 什么是抽象类#xff1f; 使用 abstract 关键字定义的类 不能被实例化#xff08;不能 new#xff09; 用于为派生类提供部分实现的蓝图 #x1f511; 抽象类的特点 1. 包含多种成员 csharp public abstract class People {// 1.…抽象类关键概念总结什么是抽象类使用abstract关键字定义的类不能被实例化不能new用于为派生类提供部分实现的蓝图抽象类的特点1. 包含多种成员csharppublic abstract class People { // 1. 普通字段/属性可以有默认值 public int Age { get; set; } 10; // 2. 抽象属性不能有默认值 public abstract string Name { get; set; } // 3. 普通方法可以有实现 public void Eat() { Console.WriteLine(吃相难看); } // 4. 抽象方法不能有实现 public abstract void SayHello(int a); // 5. 构造函数 public People() { } // 6. 事件、索引器等... }2. 抽象成员的规则抽象方法只有声明没有方法体不能加{}抽象属性只有声明不能赋值初始化抽象成员必须在派生类中使用override实现如果一个类包含抽象成员该类必须声明为abstract3. 继承规则csharp// 正确非抽象类继承抽象类必须实现所有抽象成员 public class China : People { public override string Name { get; set; } 南京博物馆火了; public override void SayHello(int a) { Console.WriteLine(你好 吃了么); } } // 错误抽象类继承抽象类可以不实现抽象成员 public abstract class Asian : People { // 可以不实现 Name 和 SayHello // 但 Asian 类也必须声明为 abstract }抽象类 vs 接口 vs 普通类特性抽象类接口普通类实例化❌ 不能❌ 不能✅ 能实现继承✅ 单继承✅ 多实现✅ 单继承包含实现✅ 可以❌ C#8.0前不能✅ 必须字段/属性✅ 可以有❌ 不能有字段✅ 可以有构造函数✅ 可以有❌ 不能有✅ 必须有访问修饰符各种都可以默认 public各种都可以抽象类的核心用途1. 实现动态多态csharp// 父类引用指向子类对象 People p1 new China(); People p2 new Japan(); p1.SayHello(1); // 输出你好 吃了么 p2.SayHello(1); // 输出口你急哇 // 同一个方法调用不同对象表现不同 → 多态2. 提供通用模板csharppublic abstract class Shape { // 所有图形都有颜色 public string Color { get; set; } // 所有图形都能计算面积但具体算法不同 public abstract double GetArea(); // 所有图形都能显示显示方式相同 public void Display() { Console.WriteLine($颜色{Color}面积{GetArea()}); } } public class Circle : Shape { public double Radius { get; set; } public override double GetArea() Math.PI * Radius * Radius; } public class Square : Shape { public double Side { get; set; } public override double GetArea() Side * Side; }3. 强制派生类实现特定功能csharppublic abstract class DatabaseConnector { // 每个数据库连接器都必须实现连接方法 public abstract void Connect(); public abstract void Disconnect(); // 提供通用的事务处理 public void BeginTransaction() { /* 通用实现 */ } }⚠️重要注意事项1. 构造函数调用链csharppublic abstract class Animal { public Animal(string name) // 抽象类可以有构造函数 { Name name; } public string Name { get; } } public class Dog : Animal { public Dog(string name) : base(name) // 必须调用基类构造函数 { } }2. sealed 与 abstract 不能同时使用csharp// ❌ 错误sealed abstract class MyClass { } // sealed 表示不能继承abstract 表示必须继承 → 矛盾3. 抽象类的设计原则Is-A关系继承抽象类的类应该是一种抽象类共性提取将多个类的共同点提取到抽象类中强制规范确保派生类必须实现某些关键功能代码复用通过基类实现减少代码重复代码示例完整抽象类应用csharpusing System; // 抽象类支付处理器 public abstract class PaymentProcessor { // 普通属性 public decimal Amount { get; set; } public DateTime PaymentDate { get; set; } DateTime.Now; // 抽象属性 public abstract string PaymentType { get; } // 普通方法 public void LogPayment() { Console.WriteLine($支付日志{PaymentDate} - {Amount}元); } // 抽象方法 public abstract bool ProcessPayment(); public abstract string GetReceipt(); } // 具体实现支付宝支付 public class AlipayProcessor : PaymentProcessor { public override string PaymentType 支付宝; public override bool ProcessPayment() { Console.WriteLine($支付宝支付{Amount}元...); return true; // 模拟支付成功 } public override string GetReceipt() { return $支付宝支付凭证 - 金额{Amount}元; } } // 具体实现微信支付 public class WechatPayProcessor : PaymentProcessor { public override string PaymentType 微信支付; public override bool ProcessPayment() { Console.WriteLine($微信支付{Amount}元...); return true; } public override string GetReceipt() { return $微信支付凭证 - 金额{Amount}元; } } class Program { static void Main() { PaymentProcessor[] payments { new AlipayProcessor { Amount 100 }, new WechatPayProcessor { Amount 200 } }; foreach (var payment in payments) { payment.LogPayment(); payment.ProcessPayment(); Console.WriteLine(payment.GetReceipt()); Console.WriteLine(); } } }总结要点抽象类是半成品类需要派生类完成实现抽象类 接口 部分实现适用于有层次关系的类设计通过抽象类实现模板方法设计模式比接口更强大可以有实现、字段、构造函数等抽象类是面向对象设计中实现多态和代码复用的重要工具抽象方法与虚方法对比总结1. 定义位置抽象方法只能定义在抽象类 (abstract class) 中虚方法可以定义在普通类、抽象类、虚类中2. 实现要求抽象方法在抽象类中不能有实现只有声明虚方法在基类中可以有默认实现3. 派生类要求抽象方法在非抽象的派生类中必须被重写否则该类也必须声明为抽象类虚方法在派生类中可以重写可选也可以不重写4. 关键字抽象方法abstract声明override重写虚方法virtual声明override重写5. 重写方式csharp// 抽象方法 public abstract void Method(); // 声明 public override void Method() { } // 重写 // 虚方法 public virtual void Method() { } // 声明实现 public override void Method() { } // 重写可选6. 实例化抽象类不能被实例化包含抽象方法的类虚方法所在的类可以被实例化如果没有其他抽象成员代码示例对比csharp// 抽象方法示例 public abstract class Animal { public abstract void Eat(); // 只有声明没有实现 } public class Dog : Animal { public override void Eat() // 必须实现 { Console.WriteLine(Dog eats bone); } } // 虚方法示例 public class People { public virtual void Eat() // 有默认实现 { Console.WriteLine(People eat food); } } public class Chinese : People { public override void Eat() // 可选重写 { Console.WriteLine(Chinese eat rice); } } public class American : People { // 不重写使用基类的默认实现 }⚠️new 关键字 vs overridecsharppublic class Base { public virtual void Method() { Console.WriteLine(Base); } } public class Derived1 : Base { public override void Method() { Console.WriteLine(Derived1); } // 重写虚方法 } public class Derived2 : Base { public new void Method() { Console.WriteLine(Derived2); } // 新建方法隐藏基类方法 } // 使用 Base obj1 new Derived1(); Base obj2 new Derived2(); obj1.Method(); // 输出: Derived1 (多态生效) obj2.Method(); // 输出: Base (new 隐藏多态不生效)总结表格特性抽象方法虚方法定义位置抽象类中任意类中实现要求无实现可有默认实现派生类要求必须实现可选重写关键字abstract/overridevirtual/override多态支持是是实例化类不能实例化类可实例化使用建议需要强制派生类实现→ 用抽象方法提供默认实现允许派生类修改→ 用虚方法实现多态→ 用override隐藏基类方法不推荐→ 用new
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

网站建设注意邯郸哪里可以学建网站

第一章:揭秘Q#与Python集成的核心机制Q# 作为微软推出的量子计算专用语言,其与 Python 的无缝集成极大降低了量子编程的门槛。通过 Quantum Development Kit(QDK),开发者可以在经典 Python 环境中调用 Q# 编写的量子操…

张小明 2026/1/10 16:46:56 网站建设

黄冈网站推广优化技巧网站伪静态好还是静态好

目录已开发项目效果实现截图开发技术路线相关技术介绍核心代码参考示例结论源码lw获取/同行可拿货,招校园代理 :文章底部获取博主联系方式!已开发项目效果实现截图 同行可拿货,招校园代理 python智能化智能化电子相册图片管理系统_84ds3–论文 pychar…

张小明 2026/1/10 16:46:59 网站建设

专业做足球体彩网站那个软件可以做网站

大家好呀~今天来跟大家聊聊 C 语言里超重要但容易被忽略的 “预处理” 环节!🤔 很多小伙伴写代码时只关注主函数、循环判断,却不知道预处理阶段能帮我们简化代码、提升灵活性。这篇笔记会从预处理的基本概念入手,带你掌…

张小明 2026/1/10 16:47:38 网站建设

wordpress 打不开主题东莞网站关键词优化公司

导语:12 月 5 日,2025 CCF 程序员大会《如何成长为超级个体》分论坛圆满落幕!论坛聚焦 “从工具使用者到价值主导者” 核心议题,朱少民、何万青、揭光发、陶建辉、王洋五位行业大咖齐聚,深度拆解超级个体进阶秘籍。 当…

张小明 2026/1/10 16:47:00 网站建设

上市公司做网站有什么用诸城网站做的好的

5分钟搭建:gperftools智能性能监控系统实战 【免费下载链接】gperftools Main gperftools repository 项目地址: https://gitcode.com/gh_mirrors/gp/gperftools 还在为系统性能问题而烦恼?gperftools智能监控系统让你在5分钟内构建完整的性能追踪…

张小明 2026/1/10 16:47:01 网站建设

在线作图网站电商网站开发哪家好

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 创建一个企业级Kiro下载工具应用案例展示页面,包含以下内容:1. 大数据文件批量下载的解决方案;2. 与现有企业系统的集成方法;3. 性能…

张小明 2026/1/10 16:47:01 网站建设