抽象与接口,库类的使用
抽象类:
抽象类,只为继承而出现,不定义具体的内容,只规定该有哪些东西;
一般抽象类中只放置抽象方法,只规定了返回类型和参数;
比如:
人 - 有吃饭,睡觉方法;
男人 - 继承人抽象类,必须实现吃饭,睡觉的方法主体;
女人 - 继承人抽象类,必须吃饭,睡觉方法的主体;
抽象类中可以有普通属性,通过子类来使用;
1.关键字:abstract
2.抽象类可以包含抽象方法和普通方法
3.abstract关键字可以定义方法为抽象方法,抽象方法可以没有函数体
4.抽象类无法被实例化,抽象类主要做为一个基类,让别的类继承。
5.sealed和abstract关键字不能同时出现
6.如果一个子类继承自抽象类,那么子类中必须实现所有的抽象方法
7.如果子类中没有实现父类的抽象方法,那么该子类必须是抽象类
8.如果一个类里面包含抽象方法,那么该类一定是抽象类
有抽象方法的,一定是抽象类
抽象类中,不一定有抽象方法
public abstruct Ren
{
public abstruct Void Eat();
public abstruct Void Sleep();
}
-----------------------------------------------------------------
接口:
极度抽象的类。
总公司--制定了规章制度(接口)--公司必须对员工进行考勤
子公司1--遵循总公司的规章制度--具体实现考勤--打卡
子公司2--遵循总公司的规章制度--具体实现考勤--点名
接口和抽象类的区别:
1.写法区别
关键字:interface
没有class关键字 类名一般用I开头
不用写public因为本身就是public,不用写abstract接口里面所有的都是抽
象的
例:
interface IUSB
{
void Start();
void Start();
}
2.接口里面不能包含普通成员
3.凡是继承接口的类,全部要实现接口里面的方法
因为团队开发,每个人负责一个模块,我只负责人的基本生活部分,另外一个人负责工作部分,还有个人负责娱乐活动部分;
public interface Work
{
void Skill();
void Place();
}
public interface Sports
{
void Sport1();
}
//类库
有些时候我们需要用到别人写的类
1.如果该类是源代码类 .cs文件
将文件拿到项目中,可以选择添加新建项或者选择添加现有项
引入相应的命名空间
2.如果该类不是源码,而是编译后的 .dll文件(编译后的类库)
将文件拿到项目中,添加引用--浏览--找到.dll文件
引入相应的命名空间
类库补充:
比如我写程序需要用到加法和减法两个功能,假如我不会写这两个功能,需要其它人帮忙;
那么其它人就可以直接写一个类库,供我使用;
1、源代码方法:
可以将直接写好的.cs源代码文件,添加进我的解决方案文件夹下,在解决方案资源管理器中,
项目上右键,添加,现有项,来添加此.cs源代码文件的使用,需要引入相应的命名空间;
2、类库方法:
一个dll文件,就是一个类库;
它人新建一个类库,在里面编写类和相应的方法,生成后出现一个dll文件,拿过来,放在自己的
程序文件夹里,在项目右键,添加引用,找到此dll类库文件添加,然后引用命名空间,就可以调用相应的类中的方法了;
注意类一定要是public访问权限
类库使用是多公司联合开发时使用的方式,因为每个公司都有自己的核心技术,我允许你使用,但不允许你
知道我是怎么编写的,所以需要dll类库文件,因为dll文件是将源代码文件编译后的文件,看不到源代码,
所以你只能调用不允许更改;