c#—接口,抽象类和抽象方法

  • 接口

接口定义了所有类继承接口时应遵循的语法合同。

接口定义了语法合同 "是什么" 部分,派生类定义了语法合同 "怎么 做" 部分。

接口定义了属性、方法和事件,这些都是接口的成员。

接口只包含了成员的声明。

成员的定义是派生类的责任。

接口提供了派生类应遵循的标准结构。

接口使得实现接口的类或结构在形式上保持一致。

抽象类在某种程度上与接口类似,但是,它们大多只是用在当只有 少数方法由基类声明由派生类实现时。

 

1.定义接口:

接口使用 interface 关键字声明,它与类的声明类似。

接口声明默认 是 public 的。

通常接口命名已I字母开头。

interface 接口名

{

 //接口代码

}

 

2.接口继承接口(多个接口用,号进行区分):

interface 接口名:继承的接口名

{

//接口的代码

}

 

3.类实现接口:

访问修饰符 class 类名:接口名

{

//实现接口的方法

}

 

4.一个类如何又继承类又实现接口:

访问修饰符 class 类名:父类名称,接口名称

{

//实现接口的方法

}

2.抽象类

抽象类主要用来提供多个派生类可共享的基类的公共定义,

它与非抽象类的主要区别如下:

1.抽象类不能直接实例化

2.抽象类可以包含抽象成员,但非抽象类不可以。

3.抽象类不能被密封。

C#中声明抽象类时需要使用abstract关键字。

 

 

1.定义一个抽象类:

访问修饰符 abstract class 类名:基类或接口

{

//继承的关系可以写,也可以不写

//类成员

}

 

  • 抽象方法

抽象方法就是在声明方法时,加上abstract关键字,声明抽象方法时 需要注意以下两点:

  1. 抽象方法必须声明在抽象类中。

 

  1. 声明抽象方法时,不能使用virtual,static和private修饰符。

 

抽象方法声明引入了一个新方法,但是不提供该方法的实现,由于 抽象方法不提供任何实际实现,因此抽象方法的方法体只包含一个分号。

 

1.抽象方法的声明:

public abstract 返回数据类型/void 方法名();

 

  • 抽象方法和接口的区别

1.它们的派生类只能继承一个基类,即只能直接继承一个抽象类,但可以继承任意多个接口。

2.抽象类中可以定义成员的实现,但接口中不可以。

3.抽象类中可以包含字段,构造函数,析构函数,静态成员或常量等,接口不可以。

4.抽象类中的成员是私有的(只要它们不是抽象的),受保护的,内部的或受保护的内部成员(受保护的内部成员只能在应用程序的代码或派生类中访问),但接口中的成员必须是公共的。

 

抽象类和接口这两种类型用于完全不同的目的。抽象类主要用于作对象系列的基类,共享某些主要特性,例如共同的目的和结构。接口则主要用于类,这些类在基础水平上有所不同,但仍可以完成某些相同的任务。

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值