首页 > 代码库 > 20141014C#面向对象抽象方法,抽象类,接口
20141014C#面向对象抽象方法,抽象类,接口
里氏代换原则。可以用子类的对象替代父类的对象。
抽象依赖原则。依赖——形参,关联
一、抽象方法:
在一些父类中,某些行为不是非常明确,因此无法用代码来具体实现,但是类必须具备此方法,因此把这样的方法定义为抽象方法。abstract
特点:1.只声明,不实现。2.加abstract关键字。
eg:
1 public abstract class Ren //类中含有抽象方法,此类也必须是抽象类。 2 { 3 public abstract void Eat(); //以分号结束,没有花括号 4 } 5 class Chinese:Ren 6 { 7 public override void Eat() 8 { 9 Console.WriteLine("用筷子吃饭。");10 }11 }
二、抽象类:
无法被实例化的类。关键词是abstract 。凡是带有abstract关键词的类,都无法new 出来。
凡是带有抽象方法的类,肯定是抽象类;抽象类却不一定包含抽象方法。
构造方法、静态成员方法不能被声明为抽象方法。
一个非抽象类必须实现从父类继承来的所有抽象方法。
不能创建抽象类的实例。
三、接口 interface: 极度抽象的类。无成员变量,无实例方法,无实例属性,只有抽象方法或抽象属性。接口就是一个规则。
接口用interface关键词来定义。
接口中的方法都是抽象的,因此无需加abstract。
接口中的方法都是公有的,无需加访问修饰符。
生活中的例子:标准,协议
接口可以继承父接口
一个类可以实现(继承)多个接口
eg:
1 public interface IUSB 2 { 3 void Start(); 4 void Stop(); 5 } 6 public class Camera : IUSB 7 { 8 public void Start() 9 {10 Console.WriteLine("打开摄像头了");11 }12 13 public void Stop()14 {15 Console.WriteLine("摄像头关闭了");16 }17 }18 19 public class UDisk : IUSB20 {21 public void Start()22 {23 Console.WriteLine("U盘启动了");24 }25 26 public void Stop()27 {28 Console.WriteLine("U盘退出了");29 }30 }31 32 public class Computer33 {34 public void CheckUSB(IUSB usb)35 {36 usb.Start();37 }38 public void CloseUSB(IUSB usb)39 {40 usb.Stop();41 }42 }
命名空间:相当于一个包。对类进行分类管理的工具。
一般的命名规则:公司名.项目名.模块名
项目名:用给人类,标识出这个项目是做什么的
程序集:程序编译出来的.exe或.dll文件。程序集的名字就是编译出来的EXE或dll的名字。
20141014C#面向对象抽象方法,抽象类,接口
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。