接口、抽象类,用于项目集成,如:

Interface icls = appid == "A" ? new ClassA() : new ClassA();
icls.func("Hello");

接口定义

/// <summary>
/// 接口成员:属性、方法、事件
/// 成员不能有 new、static、abstract、override、virtual 修饰符
/// </summary>
public interface Interface
{
string func(string str);
}

接口实现

/// <summary>
/// 定义子类A
/// </summary>
public class ClassA : Interface
{
public string func(string str)
{
return str;
}
} /// <summary>
/// 定义子类B
/// </summary>
public class ClassB : Interface
{
public string func(string str)
{
return str;
}
}

接口调用

public MainWindow()
{
InitializeComponent();
//调用方式一
Interface icls = new ClassA();
String hello = icls.func("Hello");
//调用方式二
ClassB cls = new ClassB();
String world = cls.func("World");
}

抽象类定义

/// <summary>
/// 不能初始化的类被叫做抽象类,它们只提供部分实现
/// </summary>
public abstract class IAbstract
{
//子类不需要实现,但可以重写
public virtual string ToString(string str)
{
return str;
}
//抽象方法声明不提供实际的实现,需要子类实现
public abstract void ToPrint();
}

抽象类实现

/// <summary>
/// 定义子类C
/// </summary>
public class ClassC : IAbstract
{
public override void ToPrint()
{ }
}

抽象类调用

public MainWindow()
{
InitializeComponent();
//抽象类调用
IAbstract clsc = new ClassC();
clsc.ToString("Hello");
clsc.ToPrint();
}

C# 接口、抽象类、以及事件的更多相关文章

  1. 在java.util中有EventListener接口:所有事件监听者都要实现这个接口。

    在java.util中有EventListener接口:所有事件监听者都要实现这个接口. java.util中有EventObject类:所有的事件都为其子类.   事件范例在\CoreJava\Gi ...

  2. java 接口 继承 接口 抽象类 继承 实体类

    韩梦飞沙  韩亚飞  313134555@qq.com  yue31313  han_meng_fei_sha 接口 可以 继承 接口 抽象类 可以 实现 接口 抽象类 继承实体类 需要 实体类 有 ...

  3. 接口是否可继承接口? 抽象类是否可实现(implements)接口? 抽象类是否可继承实体类(concrete class)?

    接口是否可继承接口? 抽象类是否可实现(implements)接口? 抽象类是否可继承实体类(concrete class)? 答:接口可以继承接口.抽象类可以实现(implements)接口,抽象类 ...

  4. OpenJDK源码研究笔记(十四):三种经典的设计方法,接口,接口-抽象类-具体实现类,接口-具体实现类

    在研究OpenJDK源码过程中,我发现常用的设计方法就是2种:接口,接口-抽象类-具体实现类 . 在一些其它开源框架和业务开发中,经常存在着第3种设计,接口-具体实现类. 1.只有接口,没有实现类. ...

  5. java学习-抽象类和接口-抽象类初体验

    今天在老师的带领下学习了抽象类(abstract)和接口(interface),总结一下今天所学的知识. 抽象类是在学习到接口时之前讲解,作为学习接口的铺垫. 下面是我今天写的例题. 一个Shape( ...

  6. INotifyPropertyChanged接口的PropertyChanged 事件

    INotifyPropertyChanged 接口用于向客户端(通常是执行绑定的客户端)发出某一属性值已更改的通知. 例如,考虑一个带有名为 FirstName 属性的 Person 对象. 若要提供 ...

  7. 初识JAVA(【面向对象】:pub/fri/pro/pri、封装/继承/多态、接口/抽象类、静态方法和抽象方法;泛型、垃圾回收机制、反射和RTTI)

    JAVA特点: 语法简单,学习容易 功能强大,适合各种应用开发:J2SE/J2ME/J2EE 面向对象,易扩展,易维护 容错机制好,在内存不够时仍能不崩溃.不死机 强大的网络应用功能 跨平台:JVM, ...

  8. Java接口,抽象类

    1.接口(interface),接口被用来建立类与类之间关联的标准. 2.抽象类(abstract class),只要类中有一个抽象方法,此类就被标记为抽象类.实际上抽象类除了被继承之外没有任何意义. ...

  9. PHP - 接口&抽象类

    什么时候使用抽象类什么时候使用接口? .如果要创建一个模型,这个模型将由一些紧密相关的对象采用,就可以使用抽象类.如果要创建将由一些不相关对象采用的功能,就使用接口. .如果必须从多个来源继承行为,就 ...

  10. Java 接口-抽象类解析

    对于面向对象编程,抽象是它的三大特征(抽象.继承.多态)之一.在Java中,可以通过两种形式来体现OOP的抽象:接口和抽象类. 这两者既相似又存异.诸位在初学的时候也会傻傻分不清接口与抽象类的区别,大 ...

随机推荐

  1. 让configure和cmake编译时支持调试选项

    在Linux先编译软件基本都是采用configure文件生成makefile,或者,cmake生成makefile文件两种方式.它们生成的makefile文件,一般默认不支持-g调试选项.但我们使用这 ...

  2. javascript打开窗口

    项目中javascript代码,早期使用了只有ie支持的方法:Window createPopup() 方法 那个时候是2009年,而现在已经是2019-12-11了.如何改造这个早期的代码呢? 找到 ...

  3. OpenCV 学习笔记(13)图像转换成视频

    关键 1参数里的分辨率是图像本身的分辨率,而不是指定生成的视频分辨率.如果要修改分辨率,要么后期软件处理,要么读图的时候resize 2要正常退出,不要强制退出. 3生成的只能是avi格式. #inc ...

  4. query 2019徐州网络赛(树状数组)

    query \[ Time Limit: 2000 ms \quad Memory Limit: 262144 kB \] 题意 补题才发现比赛的时候读了一个假题意.... 给出长度为 \(n\) 的 ...

  5. Jmeter函数助手—自带方法

    1.${__time()}---->当前时间,一串数字格式 2.${__time(yyyy-MM-dd)}----->当前日期,年-月-日格式 3.${__time(yyyy-MM-dd ...

  6. 算法——回文(palindrome)

    回文(palindrome):指的是从头读到尾与从尾读到头一模一样的字符串. 分别在C.Java与Python实现回文检测: C: #include <stdio.h> #include ...

  7. 联想笔记本上Ubuntu无线网卡问题

    可能有两个问题: 1.无无线网卡驱动 2.无线网卡驱动不能自动加载 问题1:无线网卡驱动 百度出网卡驱动iwlwifi-9000,如iwlwifi-9000-pu-b0-jf-b0-34.618819 ...

  8. BST | 1064 完全二叉搜索树

    OJ:https://www.patest.cn/contests/pat-a-practise/1064 (一)23分(3个case未过)代码 建树的规律是我瞎猜的.首先用样例数据分析. 对数据排序 ...

  9. JavaScriptDOM编程学习笔记(二)图片库案例

    <JavascriptDOM编程艺术>提供一个图片库的demo,主要讲解如何更好的使用JavaScript在网页中,跟随作者的思路来分析一下这个案例 首先需求是将图片发布到网上,但是如果发 ...

  10. ZROI1119 【十一·联考】幸福

    ZROI1119 [十一·联考]幸福 传送门 一道矩阵快速幂. #include<iostream> #include<cstdio> #include<algorith ...