抽象类:
抽象类,只为继承而出现,不定义具体的内容,只规定该有哪些东西;
一般抽象类中只放置抽象方法,只规定了返回类型和参数;
例:
人 - 有吃饭,睡觉方法;
男人 - 继承人抽象类,必须实现吃饭,睡觉的方法主体;
女人 - 继承人抽象类,必须四线吃饭,睡觉方法的主体;
抽象类中可以有普通属性,通过子类来使用;
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接口里面所有的都是抽
象的
2.接口里面不能包含普通成员
3.凡是继承接口的类,全部要实现接口里面的方法
因为团队开发,每个人负责一个模块,我只负责人的基本生活部分,另外一个人负责工作部分,还有个人负责娱乐活动部分;
public interface Work
{
void Skill();
void Place();
}
public interface Sports
{
void Sport1();
}
类库:
比如我写程序需要用到加法和减法两个功能,假如我不会写这两个功能,需要其它人帮忙;
那么其它人就可以直接写一个类库,供我使用;
1、源代码方法:
可以将直接写好的.cs源代码文件,添加进我的解决方案文件夹下,在解决方案资源管理器中,
项目上右键,添加,现有项,来添加此.cs源代码文件的使用,需要引入相应的命名空间;
2、类库方法:
一个dll文件,就是一个类库;
它人新建一个类库,在里面编写类和相应的方法,生成后出现一个dll文件,拿过来,放在自己的
程序文件夹里,在项目右键,添加引用,找到此dll类库文件添加,然后引用命名空间,就可以调用相应的类中的方法了;
注意类一定要是public访问权限
类库使用是多公司联合开发时使用的方式,因为每个公司都有自己的核心技术,我允许你使用,但不允许你
知道我是怎么编写的,所以需要dll类库文件,因为dll文件是将源代码文件编译后的文件,看不到源代码,
所以你只能调用不允许更改
例:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using WenBenBianJi;
//using WenBenBianJi;
namespace ConsoleApplication1
{
定义抽象类
public abstract class DongWu
{
public void Run()
{
}
public abstract void Eat();
}
做一个人类来继承抽象类
public class Ren:DongWu
{
public override void Eat()
{
Console.WriteLine("吃熟食");
}
}
定义接口
interface IUSB
{
开始读取USB
void Start();
关闭USB
void Stop();
}
做一个鼠标类来实现USB接口
class ShuBiao:IUSB
{
public void Start()
{
Console.WriteLine("鼠标启动了");
}
public void Stop()
{
Console.WriteLine("鼠标停止了");
}
}
class Program
{
static void Main(string[] args)
{
Ren r = new Ren();
r.Eat();
ShuBiao s = new ShuBiao();
s.Start();
s.Stop();
//BianJi bj = new BianJi();
//WenBenBianJi.BianJi bj = new WenBenBianJi.BianJi();
Console.ReadLine();
}
}
}