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