本人理论较差,之前会做却不明原因,最近在改别人的代码发现实现方式完全不同,但对于我这个理论白痴来说完全不知道为什么别人要这么写,好处在哪里。
没有理论的指导,会用也只是不断的Copy前人,永远无法让程序拥有自己的灵魂。
创新! 为什么各种设计模式、框架都是老外先想出来?创新,国人要自强。而只有明白了原由才能创新,没有庞大的理论知识支撑一切都是空谈。我不想永远跟着别人跑,所以我决定从今天开始我要努力学习理论知识,希望各路大神能够给予指点,同时也能让其它理论菜鸟能够一起学到知识。
废话不多说了,开始正题:
什么是抽象类?什么是抽象方法?作用是什么?什么时候用?
一贯风格Code+说明
class="code_img_closed" src="/Upload/Images/2013091311/0015B68B3C38AA5B.gif" alt="" />logs_code_hide('9390b2d8-ee38-4854-ab1c-4213ce42a8c5',event)" src="/Upload/Images/2013091311/2B1B950FA3DF188F.gif" alt="" />1 namespace Business 2 { 3 /// <summary> 4 /// 0.不能实例化 5 /// 1.单继承 6 /// 2.继承类 必须实现内部的抽象方法(override),如继承类为抽象类 可由其子类实现,简单示意: 7 /// 抽象类Parent - 抽象类Child1 - 抽象类Child2.....抽象类ChildN - 类(实现抽象方法) 8 /// 3.内部可以没有抽象方法(还有存在意义?) 9 /// 10 /// 应用场景: 11 /// 妖是妖他妈生的,所以妖必需继承他妈的基因(抽象类),妖他妈有头(抽象方法),但妖的头不会和他妈的头长一模一样(实现抽象方法)。 12 /// 程序应用场景: 13 /// 想不出来,各位大神请帮下忙。 14 /// </summary> 15 public abstract partial class AbstractDemo 16 { 17 /// <summary> 18 /// 与普通类内方法无异,可选择调用,比如公共的方法(狗只会叫,不会说人话,在这里实现就行了) 19 /// </summary> 20 /// <param name="why"></param> 21 /// <returns></returns> 22 public string SayWhy(string why) 23 { 24 return why; 25 } 26 27 partial void SayWhy(); 28 29 /// <summary> 30 /// 用抽象类,就是为了这个:抽象方法 31 /// 必须被实现 32 /// </summary> 33 /// <param name="what"></param> 34 /// <returns></returns> 35 public abstract string SayWhat(string what); 36 37 /// <summary> 38 ///extern 39 ///官方说明: 40 ///修饰符用于声明在外部实现的方法。 extern 修饰符的常见用法是在使用 Interop 服务调入非托管代码时与 DllImport 特性一起使用。 在这种情况下,还必须将方法声明为 static,如下示例所示: 41 ///[DllImport("avifil32.dll")] 42 ///private static extern void AVIFileInit(); 43 /// </summary> 44 /// <returns></returns> 45 public extern string Answer(); 46 } 47 }Abstract Demo
光嘴上说,也许很难(至少本人还没达到这境界),配上代码 理论+实践 个人认为是最好的一种了解、掌握新知识的方法。
程序应用场景: 想不出来,各位大神请帮下忙。