C#抽象类和接口
来源:互联网 发布:韩视美瞳怎么样 知乎 编辑:程序博客网 时间:2024/05/21 12:48
抽象类和接口有什么区别?有了抽象类为什么还要接口?
接口和抽象类的相同点是都不能实例化,不同点是接口中的方法都没有方法体,而抽象类则不然,除了抽象方法没有方法体外,其他方法都有方法体。
原因是:在C#中,类只能继承一个类,但可继承多个接口。
抽象类:
1、不能实例化
2、抽象方法必须被子类重写
3、如果类中包含有抽象方法,该类必须定义为抽象类
抽象类前加abstract。
抽象方法在返回值前加abstract,没有方法体,直接在括号后加分号。
1、包含有抽象方法的类一定为抽象类
2、抽象类不一定包含抽象方法
虚方法是用来实现多态的,为了使子类的实例完全接替来自父类的成员,父类必须将该成员声明为虚拟的,这是通过在该成员的访问类型前加virtual关键字来实现的。
子类可以选择使用override关键字将父类实现替换为它自己的实现,这就是方法重写,当然也可以不重写。
class Animal{ public virtual void Shout() { Console.WriteLine("动物叫!"); }}class Cat:Animal{ public override void Shout() { Console.WriteLine("猫叫!"); }}class Dog: Animal{ public override void Shout() { Console.WriteLine("狗叫!"); }}class Program{ static void Main(string[] args) { Animal[] animals=new Animal[2]; animals[0]=new Cat(); animals[1]=new Dog(); foreach (var animal in animals) { animal.Shout(); } Console.ReadLine(); }}
0 0
- c# 抽象类和接口
- C# 抽象类和接口
- c#接口和抽象类
- C#抽象类和接口
- C#抽象类和接口
- C#接口和抽象类
- C#抽象类和接口
- c#抽象类和接口
- C#接口和抽象类
- C#抽象类和接口
- C# 抽象类和接口
- C#抽象类和接口
- 浅谈C#抽象类和C#接口
- C#接口、类和抽象类
- c#中的抽象类和接口
- C#中抽象类和接口
- C#中的抽象类和接口
- c#接口和抽象类的区别
- 文摘
- Android 监听各个Acitivity的生命周期
- IntelliJ IDEA 的 20 个代码自动完成的特性
- 《Computational Statistics with Matlab》硬译
- 委托和事件C#演示代码
- C#抽象类和接口
- android Timer浅析
- 《Computational Statistics with Matlab》硬译2
- 学习ADPLL的一些总结1
- 论文阅读笔记
- 未能加载文件或程序集 Ninject.Web.Common, Version=3.2.0.0
- 使用PowerDesigner画图详细教程——CDM
- 领域驱动设计分层类图
- 相关性探索