1.接口
接口的概念及声明
接口是一种用来定义程序的协议,它描述可属于任何类或结构的一组相关行为
接口可以包含方法、属性、索引器和事件作为成员,但是并不能设置这些成员的具体值,
也就是说,只能定义,不能给它里面定义的东西赋值
接口特征:
a.接口类似抽象基类:继承接口的任何非抽象类型都必须实现接口的所有成员
b.不能直接实例化接口
c.接口可以包含时间、索引器、方法和属性,不包含方法的实现
d.类和结构可从多个接口继承
e.接口自身可从多个接口继承
接口的说明:使用interface关键字 例:修饰符 interface 接口名称 : 继承的接口列表{ 接口内容;}
注意:可以使用new、public、protected、internal、private等修饰符声明接口,但接口成员必须是公共的
显式接口
注意: 1.显式接口成员实现中不能包含访问修饰符、adstract、virtual、override或static修饰符
2. 显式接口成员属于接口的成员而不是类的成员,因此,不能使用类对象直接访问,只能通过接口对象来访问
2.抽象类与抽象方法
如果一个类不与具体的事务相联系,而只是表达一种抽象的概念,仅仅是作为其派生类的一个基类,这样的类就是抽象类
如果在抽象类中声明方法时加上abstract关键字,则为抽象方法
抽象类主要是用来提供多个派生类可共享的基类的公共定义 与非抽象类的区别:
a.抽象类不能直接实例化
b.抽象类中可以包含抽象成员,但非抽象类不可以
c. 抽象类不能被封装
抽象类的声明:C#中使用abstract关键字 例:访问修饰符 abstract class 类名:基类或接口{ }
抽象方法就是在声明方法时加上abctract关键字,注意: 抽象方法必须声明在抽象类中,且不能使用virtual、static和private修饰符
3.抽象类与接口
抽象类和接口都包含可以由派生类继承的成员,它们都不能直接实例化,但可以声明它们的变量
区别:
a.它们的派生类只能继承一个基类即只能直接继承一个抽象类,但可以继承任意多个接口
b.抽象类中可以定义成员的实现,但接口不可以
c.抽象类中可以包含字段、构造函数、静态成员或常量等,接口中不可以
d.抽象类中的成员可以是私有的、受保护的、内部的或受保护的内部成员,但接口中的成员必须是公共的
4.密封类与密封方法
密封类的概述及声明
4.1 目的:为了避免滥用继承
4.2 密封的前提:
a.类是静态类
b.类包含带有安全敏感信息的继承的受保护成员
c.类继承多个虚成员,并且密封每个成员的开发和测试开销明显大于密封整个类
d.类是一个要求使用反射进行快速搜索的属性。密封属性可提高反射在检索属性时的性能
4.3 密封的声明: C#中使用sealed关键字声明密封类 语法格式:访问修饰符 sealed class 类名:基类或接口{}
4.4 说明:
1.密封类不能作为基类被继承,但它可以继承别的类或接口
2. 在密封类中不能声明受保护成员或虚成员,因为受保护成员只能从派生类进行访问,而虚成员只能在派生类中重写
3.由于密封类的不可继承性,因此密封类不能声明为抽象的,即sealed修饰符不能与abstract修饰符同时使用
密封方法概述及声明
并不是每个方法都可以声明为密封方法,密封方法只能用于对基类的虚方法进行实现,并提供具体的实现。
所以声明密封方法时,sealed修饰符总是和override修饰符同时使用
C语言生成的接口可以被JAVA调用 c语言接口是什么意思
转载本文章为转载内容,我们尊重原作者对文章享有的著作权。如有内容错误或侵权问题,欢迎原作者联系我们进行内容更正或删除文章。
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
c语言可以调用Python接口吗 c语言 调用python
C语言中调用运行python程序:
Python C语言 python #include -
c学院 r语言 r语言的c是什么意思
C语言中怎样申明变量?任何一种编程语言都离不开变量,特别是数据处理型程序,变量的使用非常频繁,没有变量参与程序甚至无法编制,即使编制运行后的意义也不大。变量之所以重要,是因为变量是编程语言中数据的符号标识和载体。
c学院 r语言 c语言中r的作用是什么意思 全局变量 局部变量 数据
















