什么是抽象,抽象就相当于一个非实体的描述。也就是说抽象不可以实例化,但是可以被继承,抽象类中可以包含实现,但是只要没有实现那么这个类必须规定为抽象类。
在.NET 2.0面向对象编程揭秘 中它是这样被描述的。
抽象中有抽象类,抽象方法,抽象属性。
1、抽象方法
呵呵,我更喜欢先说抽象方法,因为有抽象发放抽象类才能存在,当然不是说所有的抽象类里面都必须有抽象方法。我们尝试先去理解抽象类,至于说为什么这么写我在后面说就是了,那么怎么写呢。抽象方法既然为抽象,那么就不包含任何的实现内容。
普通类里面我们写print方法是这么写的





public abstract void print();
我们先不管它到底是为了什么我们先将她这么写就是了。2、抽象属性
抽象属性和抽象方法的基本原理应该是一致的,都是没有任何实现的。
在普通里面我们这么写我们的一个属性
public string Name
{
get{return name;}
set{name=value;}
}
而在我们的抽象属性中我们不需要包含任何实现,就可以这么写{
get{return name;}
set{name=value;}
}





好了到此,我们都稀里糊涂的看到了上面的抽象方法,和抽象属性,那么我们可以来描述一下抽象类了,在抽象类中我们表现出了极大的容忍和包容,呵呵。我们将所有的抽象方法和抽象属性都包含到这个抽象类中
3、抽象类
我们将上面的抽象方法和抽象属性都包含进我们的抽象类
abstract class aclass
{
public abstract print();
public abstract string Name
{
get;
set;
}
}
{
public abstract print();
public abstract string Name
{
get;
set;
}
}
抽象类一般表示为基类,她的基本作用就是让后面的子系继承的,而抽象方法和抽象属性可以在子系里面进行详细的实现。
中国人喜欢为每件存在的事物寻找一个理由,那么为什么要用抽象呢,这个我还没有研究到那么深刻,目前处于学习阶段,我只知道她的存在必定有她存在的道理。
好了下面我们稍微使用一个小小的例子来描述一下具体是怎么用抽象类的呢抽象类的呢































































































Fruit f;
f = new Apple();
f.Message="Apple";
f.GrowInArea();
f = new Pineapple();
f.Message="Pineapple";
f.GrowInArea();
f = new Apple();
f.Message="Apple";
f.GrowInArea();
f = new Pineapple();
f.Message="Pineapple";
f.GrowInArea();
接口
什么是接口呢。。。我第一次听老师讲解到这个内容的时候也是稀里糊涂的,根本不知道那东西是干嘛的。每个东西的存在都有她的必要性,而我们的接口呢,当时根本没有什么程序要用到接口,也没什么太在意,但是现在程序越来越大的时候,不规范的代码到处都是,就想到有没有什么其他方法,为我们规定比较好的编程方式呢。于是我学习了接口。
现在才理解接口,就是对外提供的模型,你所实现的内容对着这个模型做就好了。
我们首先示例一个简单的接口






那么我们现在来实现这个接口的一个新的类看哈子、







而我们怎样去调用这个方法呢 。
mycall m_mycall=new mycall;
m_mycall.call();
这样就可以了。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 单线程的Redis速度为什么快?
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 展开说说关于C#中ORM框架的用法!
· SQL Server 2025 AI相关能力初探
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库