抽象类: 它比类更抽象。定些规则让子类继承遵循。
抽象类,只为继承而出现,不定义具体的内容,只规定该有哪些东西,
一般抽象类中只放置抽象方法,只规定了返回类型和参数
比如:
人 - 有吃饭,睡觉方法;
男人 - 继承人抽象类,必须实现吃饭,睡觉的方法主体;
女人 - 继承人抽象类,必须实现吃饭,睡觉方法的主体;
抽象类中可以有普通属性,通过子类来使用
1、关键字:abstract
2、抽象类可以包含抽象方法和普通方法
3、abstract关键字可以定义方法为抽象方法,抽象方法可以没有函数体
4、抽象类无法被实例化,抽象类主要作为一个基类,让别的类继承
5、sealed 和abstract不能同时出现,不继承,继承
6、如果一个子类继承自抽象类,那么子类中必须实现所有的抽象方法
7、如果子类中没有实现父类的抽象方法,那么该子类必须是抽象类
8、如果一个类里面包含抽象方法,那么该类一定是抽象类
有抽象方法的,一定是抽象类
抽象类中,不一定有抽象方法
public abstruct ren
{
public sbstruct void eat();
public abstruct void sleep();
}
-----——————————————————————————————————————————------------------------------------------------------------------------------------------
接口:极度抽象的类,比抽象类还抽象,相当于严格的规章制度。
总公司--制定了规章制度(接口)--公司必须对员工进行考勤
子公司1--遵循总公司的规章制度--具体实现考勤--打卡
子公司2--遵循总公司的规章制度--具体实现考勤--点名
根据总公司的规章制度指定自己的规则
接口和抽象类区别:
1、写法不同
关键字:interface
没有class关键字 类名用大写的I开头 不用写public 不用写abstract因为接口里面所有的都是抽象的
2、接口里不能包含普通成员,
3、凡是继承接口的类,全部要实现接口里的方法
接口的功能:
因为团队开发,每个人负责一个模块,我只负责人的基本生活部分,另外一个人负责工作部分,
还有个人负责娱乐活动部分1、可以将程序拆分成多个模块2、定义了子类必须包含的功能
public interface work
{
void skill();
void place();
}
public interface sports
{
void sport1();
}
类库:
有些时候需要别人写的类
1、如果该类是源代码类 就是.cs文件
将文件拿到项目中,可以选择添加先建项或者选择添加现有项引入相应的命名空间
2、如果该类不是源码,而是编译后的.dll文件(编译后的类库)
将文件拿到项目中,添加引用——浏览——找到.dll文件
引入相应的命名空间