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抽象类如何理解
例如有太多相似,但是不一样的类,他们都继承自同一个基类(比如大型游戏有各个种族,每个种族有各种人物,加起来几百种类型,然后基本上他们都是一个角色,都有基本相同的属性和方法,比如都会走,只是速度不同,都 ...
随机推荐
- 使用CAEmitterLayer产生粒子效果
ViewController.m #import "ViewController.h" @implementation ViewController - (void)viewDid ...
- json格式初涉
json用{}表示json对象,[]表示数组,里面以值对的方式来存储信息 var jsondata='{"staff": [{"name":"jim& ...
- Delphi窗体创建释放过程及单元文件小结(转)
Delphi窗体创建释放过程及单元文件小结 Delphi中的窗体,有模式窗体与非模式窗体两种.两种窗体的调用方式不同,模式窗体使用ShowModal显示,非模式窗体使用Show显示.当显示模式窗体的时 ...
- Java在ACM中的使用
1.基本框架 import java.oi.*; import java.util.* public class Main { public static void main(St ...
- 如何访问google
http://www.williamlong.info/archives/3983.html http://jingyan.baidu.com/article/29697b91316f2fab20de ...
- wifi钓鱼教程
关于 <原创>想钓鱼必须还要有好竿wifi学习教程+软件下载地址修正 因为最近网盘维护 导致资源无法下载 今天早上开通下载服务了大家可以放心下载. 蹭网要低调不要炫耀 软件介绍:Wires ...
- JSON stringify and parse
来源 : http://javascript.ruanyifeng.com/stdlib/date.html //解析json也可以传入一个方法, 基本上和stringify差不多,不过是逆序的, 要 ...
- Cracking the coding interview--Q1.6
原文: Given an image represented by an NxN matrix, where each pixel in the image is 4 bytes, write a m ...
- 二叉查找树:Python实现
#coding:utf8 #author:HaxtraZ class BST(object): """二叉查找树的简单实现""" def _ ...
- cocos2d-x 头文件中添加方法变量导致编译报错
代码如下: HelloWorldScene.h #ifndef __HELLOWORLD_SCENE_H__#define __HELLOWORLD_SCENE_H__ #include " ...