20141214--抽象基类,接口

抽象类:

在一个类的前面加上关键字“abstract”此类就成了抽象类。

抽象类,不可以作为一个对象来使用。(无法New)一般用它来引用子类对象,

abstract class Man
    {
        public  void shuohua()
        {
            Console.WriteLine("会英语");
        }
    }

抽象方法:

在一个方法前 加上关键字“abstract”此类就成了抽象方法。

public abstract void shuohua()

当一个类中继承的是抽象类时,必须要把方法重写。(override  关键字),

public override void shuohua()
        {
            Console.WriteLine("会英语");
        }

子类中必须全部实现抽象类父类中的所有抽象方法。

抽象方法必须在抽象类中。抽象类中可以出现其他方法,但是抽象方法必须在抽象类中。

抽象类中的普通方法,只能在当前类中 使用。

抽象类只可以作为一个父类来使用,不能创建对象。

抽象属性:

只能在 抽象类中使用。

接口:

接口关键字  interface

右键--添加--添加新建项--选择接口

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace jicheng
{
    interface Interface1
    {
    }
}

接口中不能有字段,方法。

接口可以看成是一种纯的抽象类,它所有的方法都是抽象类。主要用来规定方法名字,

接口对象,需要New继承了接口的类:

接口类型的名字  变量名 = New 继承了这个接口的类的名字();

时间: 2024-11-11 12:41:04

20141214--抽象基类,接口的相关文章

6、面向对象以及winform的简单运用(抽象基类与接口)

抽象类与抽象方法 1.书写规范: 在类前面加上abstract关键字,就成为了抽象类:在一个方法前面加上abstract关键字,就成为了抽象方法(抽象方法不能有实现方法,直接在后面加分号) 例: abstract class Chouxiang //抽象类 { public abstract void fangfa(); //抽象方法 } 2.抽象类的注意事项: 1)当一个类变为抽象类之后就不能作为对象来使用了,无法new出来 2)抽象方法必须放在抽象类里面(但抽象类中不一定有抽象方法) 3)没

Python 接口:从协议到抽象基类

抽象基类的常见用途:实现接口时作为超类使用.然后,说明抽象基类如何检查具体子类是否符合接口定义,以及如何使用注册机制声明一个类实现了某个接口,而不进行子类化操作.最后,说明如何让抽象基类自动“识别”任何符合接口的类——不进行子类化或注册. Python文化中的接口和协议 接口在动态类型语言中是怎么运作的呢?首先,基本的事实是,Python语言没有 interface 关键字,而且除了抽象基类,每个类都有接口:类实现或继承的公开属性(方法或数据属性),包括特殊方法,如__getitem__ 或 _

五、抽象基类与接口

5.1 抽象类与抽象方法 在一个类前面加上“abstract”关键字,此类就成为了抽象类. 对应的,一个方法类前面加上“abstract”关键字,此方法就成为了抽象方法. abstract class Fruit   //抽象类 { public abstract void GrowInArea();  //抽象方法 } 注意抽象方法不能有实现代码,在函数名后直接跟一个分号. 抽象类专用于派生出子类,子类必须实现抽象类所声明的抽象方法,否则,子类仍是抽象类. 抽象类一般用于表达一种比较抽象的事物

抽象基类与接口

5.1抽象类与抽象方法 在一个类前面加上“abstract”关键字,此类就成为了抽象类. 对应地,一个方法类前面加上“abstract”关键字,此方法就成为了抽象方法. 注意抽象方法不能有实现代码,在函数名后直接跟一个分号. 抽象类专用于派生出子类,子类必须实现抽象类所声明的抽象方法,否则,子类仍是抽 象类. 抽象类一般用于表达一种比较抽象的事物,比如前面所说的“水果”,而抽象方法则说 明此抽象类应该具有的某种性质,比如 Fruit类中有一个抽象方法  GrowInArea(),说明水果 一定有

C#编程语言与面向对象——抽象基类与接口

在一个类前加“abstract”关键字,此类就成为抽象类. 对应的,在一个方法前加“abstract”关键字,此方法就成为抽象方法. abstract class Fruit //抽象类 { public abstract void GrowInArea();//抽象方法 } 注意抽象方法不能又实现代码,在方法名后直接跟一个分号. 抽象类专用于派生出子类,子类必须实现抽象类中所生命的方法.否子子类仍是抽象类. 抽象类一般用于表达一种比较抽象的事物,比如说“水果”,而抽象方法则说明此抽象类应该具有

定义接口或者抽象基类

你想定义一个接口或抽象类,并且通过执行类型检查来确保子类实现了某些特定的方法. 解决方案: 使用 abc 模块可以很轻松的定义抽象基类 from abc import ABCMeta, abstractmethod class IStream(metaclass=ABCMeta): @abstractmethod def read(self, maxbytes=-1): pass @abstractmethod def write(self, data): pass 抽象类的一个特点是它不能直接

Entity Framework 实体框架的形成之旅--为基础类库接口增加单元测试,对基类接口进行正确性校验(10)

本篇介绍Entity Framework 实体框架的文章已经到了第十篇了,对实体框架的各个分层以及基类的封装管理,已经臻于完善,为了方便对基类接口的正确性校验,以及方便对以后完善或扩展接口进行回归测试,那么建立单元测试就有很大的必要,本篇主要介绍如何利用VS创建内置的单元测试项目进行实体框架的基类接口测试. 在采用单元测试这个事情上,很多人可能想到了NUnit单元测试工具和NMock工具进行处理,其实微软VS里面也已经为我们提供了类似的单元测试工具了,可以不需要使用这个第三方的单元测试工具,经试

C++编程实践: 抽象基类

本实例来自<C++ Primer Plus>(第六版) 第十三章 题目要求: 假设你正在开发一个图形程序,该程序会显示圆和椭圆等,需要考虑: 椭圆要包含椭圆中心坐标,半长轴,半短轴以及方向角的数据.圆要实现圆心坐标,半径等数据. 椭圆要包含移动,旋转一定角度,计算面积和缩放等方法,但是圆不需要旋转. 设计思路: 虽然圆也是一种椭圆的特殊形势,但是设计成由圆类继承椭圆类显然是十分笨拙的.比较好的办法是涉及一个基类BaseEllipse,圆和椭圆都继承此基类.这样便可以使用指针数组同时管理Circ

流畅python学习笔记:第十一章:抽象基类

__getitem__实现可迭代对象.要将一个对象变成一个可迭代的对象,通常都要实现__iter__.但是如果没有__iter__的话,实现了__getitem__也可以实现迭代.我们还是用第一章扑克牌的例子来看下 class FrenchDeck:     ranks=[str(n) for n in range(2,11)] + list('JQKA')     suits='spades diamonds clubs hearts'.split()     def __init__(sel

python 抽象基类(abc)

设置ABCMeta元类 抽象类是一类用于继承,但是无需实现具体方法的类,它会创建一些子类必须实现的方法签名.抽象类在定义和强制类抽象方面非常有用,它类似于其他变成语言里面的接口概念,无需实现具体方法. 从概念上来讲,有一种实现抽象类的方式是对类方法进行存根,然后在类方法被访问的时候直接抛出NotImplementedError异常.这样可以防止子类在没有重写类方法之前直接访问父类的类方法. 像这样: class Fruit: def check_ripeness(self): raise Not