Abstract-抽象类
本人理论较差,之前会做却不明原因,最近在改别人的代码发现实现方式完全不同,但对于我这个理论白痴来说完全不知道为什么别人要这么写,好处在哪里。
没有理论的指导,会用也只是不断的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
光嘴上说,也许很难(至少本人还没达到这境界),配上代码 理论+实践 个人认为是最好的一种了解、掌握新知识的方法。
程序应用场景:
想不出来,各位大神请帮下忙。
Abstract-抽象类的更多相关文章
- Java abstract 抽象类 和interface接口的异同点
abstract 抽象类 和interface接口的异同点 相同点: 抽象类和接口都不能实例化,他们都位于继承树顶端,被其他类实现和继承 都可以包含抽象方法,实现接口或者继承抽象类的非抽象类(普通类) ...
- c# abstract抽象类与继承类子类的构造函数_base
http://blog.itpub.net/9240380/viewspace-718054/ http://blog.163.com/cloud_thegreat/blog/static/10367 ...
- abstract抽象类和interface接口
一.抽象类 1.抽象类不能实例化,因为有抽象方法未实现 2.可以被抽象类或非抽象类继承 3.但不是只能被继承,还可以直接拿来使用的,当然,这个使用是拿来声明,反例如下: public abstract ...
- Abstract抽象类 && Interface接口
# 抽象类 ## 将相同的但是不确定的动作提取出来,抽象化,抽象类的意义在于,在子类中进行实现. ## 抽象类可以被继承,子类继承抽象类时,需要对抽象方法进行完全实现. ## 抽象方法不能有方法体. ...
- Java之关键字abstract(抽象类与抽象方法)
/* * abstract关键字的使用 * 1.abstract:抽象的 * 2.abstract可以用来修饰的结构:类.方法 * * 3. abstract修饰类:抽象类 * > 此类不能实例 ...
- 23.1 abstract抽象类案例
package day2_抽象类; /* * 基础班老湿,就业班老湿 * 共性 * 属性 姓名,年龄,性别 * 行为 讲课 */ public class AbstractTeacherTest { ...
- php Abstract 抽象类 与 Interface的
一.Abstract Class 与 Interface 的构造 抽象类 Abstract Class <?php abstract class A { abstract public func ...
- C#Abstract抽象类的语法
1. 抽象方法只能放在抽象类中,且不用实现(没有方法体); 2.抽象类中可以放非抽象方法; 3.抽象类不能实例化,只能实例化他的子类,是为子类"活着";
- 2.匿名类,匿名类对象,private/protected/public关键字、abstract抽象类,抽象方法、final关键字的使用,多线程Thread类start方法原理
package com.bawei.multithread; //注意:模板方法我们通常使用抽象类或者抽象方法!这里我们为了方便在本类中使用就没有使用抽象类/抽象方法 public class Tem ...
- C#.NET常见问题(FAQ)-abstract抽象类如何理解
例如有太多相似,但是不一样的类,他们都继承自同一个基类(比如大型游戏有各个种族,每个种族有各种人物,加起来几百种类型,然后基本上他们都是一个角色,都有基本相同的属性和方法,比如都会走,只是速度不同,都 ...
随机推荐
- js本地存储解决方案(localStorage与userData)
WEB应用的快速发展,是的本地存储一些数据也成为一种重要的需求,实现的方案也有很多,最普通的就是cookie了,大家也经常都用,但是cookie的缺点是显而易见的,其他的方案比如:IE6以上的user ...
- 《python基础教程》笔记之 序列通用操作
索引 序列中的所有元素都是有编号的--从0开始递增.使用负数索引时,Python会从右边,也就是从最后一个元素开始计数,最后一个元素的位置编号是-1.此外,字符串是一个有字符组成的序列,字符串字面值可 ...
- 自己动手开发编译器(四)利用DFA转换表建立扫描器
上回我们介绍了两种有穷自动机模型——确定性有穷自动机DFA和非确定性有穷自动机,以及从正则表达式经过NFA最终转化为DFA的算法.有些同学表示还是难以理解NFA到底怎么转化为DFA.所以本篇开头时我想 ...
- iOS开发——C篇&文件操作
今天开始C语言中的重点难点就基本上技术忘了,但是还有最后一个知识点不得不提,那就是文件操作. 我们都知道,我们每天都在使用电脑,手机,或者其他电子或者移动设备,其实我们在使用的时候每时每刻都在执行文件 ...
- TOP 100 MISSPELT/MISSPELLED WORDS IN ENGLISH
acceptable accidentally accommodate acquire acquit a lot amateur apparent argument atheist believe ...
- 方便john破解linux密码批处理
Title:方便john破解linux密码批处理 -- 2011-11-23 17:31 自定义文件HASH名和字典名批处理(单一文件): @echo offcolor 0asetlocal enab ...
- ASP.NET Email + WebConfig
这里演示如果把 Email provider 的资料写在 WebConfig 里和调用它. 如果整个项目只需要使用一个 Email, 可以写入system.net里, 微软已经帮我们设计好了 < ...
- php preg_match 和preg_match_all
$h3=trim('[我要变强][主流程]整体功能测试点');$matches=array();preg_match_all('/[(.+?)]/', $h3,$matches); print_r($ ...
- python通过代理刷网页点击量
python通过代理刷网页点击量 更新异常处理情况 @time 2013-0803 更新循环里计数问题和随机等待时间问题 #!/usr/bin/python #-*- coding:utf-8 -*- ...
- cf500B New Year Permutation
B. New Year Permutation time limit per test 2 seconds memory limit per test 256 megabytes input stan ...