c# 抽象类与接口的差别
2025-01-27 09:06 钟铧若岩 阅读(6) 评论(0) 编辑 收藏 举报在 C# 中,抽象类和接口是两个重要的面向对象编程概念,它们都可以用于定义规范和实现多态性,但在很多方面存在差别,具体如下:
定义和语法
在 C# 中,抽象类和接口是两个重要的面向对象编程概念,它们都可以用于定义规范和实现多态性,但在很多方面存在差别,具体如下:
abstract
关键字定义,抽象类中可以包含抽象成员(抽象方法、抽象属性等),也可以包含非抽象成员(有具体实现的方法、属性、字段等)。abstract class AbstractClass { // 抽象方法 public abstract void AbstractMethod(); // 非抽象方法 public void NonAbstractMethod() { Console.WriteLine("This is a non-abstract method."); } }
interface
关键字定义,接口中的所有成员默认都是public
和abstract
的,不能有字段,也不能有方法的具体实现。interface IMyInterface { void InterfaceMethod(); }
class MyClass : AbstractClass { public override void AbstractMethod() { // 实现抽象方法 } }
class MyClass : IMyInterface1, IMyInterface2 { public void InterfaceMethod1() { // 实现接口方法 } public void InterfaceMethod2() { // 实现接口方法 } }
public
、protected
、private
等。protected
成员可以在子类中访问,这使得抽象类可以为子类提供一些内部的、可复用的逻辑或数据。public
和abstract
的,不能显式地使用其他访问修饰符。这个也算最简单的了。只为只考虑三位数。
-- 钟铧若岩这个oracle的内部机制,不清楚啊。
-- 钟铧若岩
Copyright © 2025 钟铧若岩
Powered by .NET 9.0 on Kubernetes
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!