抽象类:
抽象类,只为继承而出现,不定义具体的内容,只规定该有哪些东西;
一般抽象类中只放置抽象方法,
1、关键字 abstract
2、抽象类可以包含抽象方法和普通方法
3、abstract关键字可以把方法变为抽象方法,抽象方法可以没有函数体
4、抽象类无法被实例化,抽象类主要做为一个基类,让其他类继承。5、abstract关键字和sealed关键字(禁止继承)不能同时出现
6、如果一个子类继承自抽象类,那么子类中必须实现所有的抽象方法
7、如果子类中没有实现父类的抽象方法,那么该子类必须是抽象类
8、如果一个类里面包含抽象方法,那么该类一定是抽象类
接口:
极度抽象的类。
接口与抽象类的区别:
1、写法区别
关键字:interface
没有class关键字
写法 interface 类名{} 类名规则:一本用I开头
不用谢public,因为接口本身就是public,不用写abstract 因为接口里面所有的都是抽象的
2、接口里面不能包含普通成员
3、凡是继承接口的类,全部要实现接口里面的方法
接口内没有函数体,只是规定需要进行哪些操作,但是没有具体的实现方法,有子函数自己定义使用。
//类库
有些时候我们需要用到别人写的类
1、如果该类是源代码类 .cs文件
起那个文件拿到项目中,可以选择添加新建项或选择现有项
引用相应的命名空间
2、如果该类不是源码,而是编译后的 .dll文件(编译后的类库)
将文件拿到项目中,添加引用--浏览--找到.dll文件
引入相应的命名空间
1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 using System.Threading.Tasks; 6 7 namespace 抽象类 8 { 9 //定义抽象类 10 public abstract class DongWu 11 { 12 public void Run() 13 { 14 } 15 public abstract void Eat();//抽象方法可以没有函数体 16 17 18 } 19 20 public class Ren : DongWu 21 { 22 public override void Eat() 23 { 24 Console.WriteLine("吃熟食"); 25 } 26 27 } 28 29 //定义接口 30 interface IUSB 31 { 32 //开始读取USB 33 void Start(); 34 35 //关闭USB 36 void Stop(); 37 38 } 39 40 //做一个鼠标的类来实现USB接口 41 class ShuBiao:IUSB 42 { 43 public void Start() 44 { 45 Console.WriteLine("鼠标启动了"); 46 } 47 public void Stop() 48 { 49 Console.WriteLine("鼠标停止了"); 50 } 51 52 } 53 54 55 class Program 56 { 57 static void Main(string[] args) 58 { 59 //DongWu dw = new DongWu();--错误,抽象类无法被实例化 60 Ren r=new Ren(); 61 r.Eat(); 62 Console.ReadLine(); 63 64 } 65 } 66 67 68 69 70 71 }
时间: 2024-10-29 19:11:19