# Python 中的函数和抽象类 ## 引言 在面向对象编程中,函数和抽象类是非常重要的概念。它们帮助我们制定类的接口规则,从而强制派生类实现特定的方法。在Python中,我们通过使用 `abc` 模块来实现这些功能。本文将详细介绍如何在Python中定义函数,通过步骤和代码示例,帮助初学者理解这一概念。 ## 实现流程 下面是实现一个含有函数的抽象类的基本流程: |
原创 10月前
20阅读
在帮新同事进行代码审查的时候,常常会发现这样的问题:代码中原有基类B和派生类D1,现在新加一个派生类D2,它有一个函数f2()。由于经验不足,新同事并没有注意到D1也有类似的函数f1()。于是造成了类似的代码出现在了两个地方,代码冗余造成将来的维护工作异常困难。注意到f()实际上是一个通用的行为,我们可以把它抽出来放到基类中,如下所示。   1. class B 2. {
  首先区别一些概念:a.定义一个函数函数,不代表函数为不被实现的函数b.定义某个函数函数,是为了允许用基类的指针来调用子类的这个函数c.定义一个函数函数,才代表这个函数为不被实现的函数   接着来详细介绍函数函数:1.函数,“”就“”在所谓推迟联编或动态联编上,一个类函数的调用并不是在编译时刻被确定的,而是在运行时刻被确定的。由于编写代码时并不能确定被调用的
函数和抽象类函数函数是一个在基类中说明的函数,它在该基类中没有定义,但要求在它的派生类中必须定义自己的版本, 或重新说明为函数函数的定义形式virtual <函数类型> <函数名> ( 参数表 ) = 0函数与一般函数成员的原型在书写形式上的不同就在于后面加了“=0”,表明在基类中不用定义该函数,它的实现部分(函数体) 留给派生类去做。函数
转载 2023-05-27 11:52:47
147阅读
什么是函数 函数的语法 1. 将成员函;数声明为virtual 2. 后面加上=0 3. 该函数没有函数体 例如class CmdHandler{ public: virtual void OnCommand(char * cmdline)=0;};含有函数的类,称为抽象类(或称类) 例如,CmdHandler中有一个函数OnComm
原创 2021-07-12 13:35:43
550阅读
定义函数就是在基类中声明的函数,它在基类中没有定义,但要求任何派生类都要定义自己的实现方法。在基类中实现函数的方法是在函数原型后面加“=0”引入原因方便的使用多态,因此常常在基类中定义函数在很多情况下,基类本身生成对象是不合理的。例如,动物作为一个基类可以派生出老虎、孔雀等子类,蛋动物本身生成对象明显不合常理。为了解决上述问题,引入了函数的概念,将函数定义为函数(virtu
函数:在子类继承父类的时候,如果子类和父类有相同的函数(即函数的覆盖),当子类实例化对象的时候,子对象调用此函数,会默认调用父类的此函数。 这时,在父类的此函数前面加上:virtual,就可以调用子类此函数函数:在父类的某个函数-》virtual void fn()=0; 这个类就变成了抽
转载 2016-09-14 13:20:00
267阅读
2评论
1.首先:强调一个概念        定义一个函数函数,不代表函数为不被实现的函数。定义他为函数是为了允许用基类的指针来调用子类的这个函数。        定义一个函数函数,才代表函数没有被实现。定义他是为了实现一个接口,起到一个规范的作用,规范继
原创 2023-04-23 09:17:10
196阅读
  函数的作用      在许多情况下,在基类中不能对函数给出有意义的实现,而把它声明为函数,它的实现留给该基类的派生类去做。 1.首先:强调一个概念         定义一个函数函数,不代表函数为不被实现的函数。定义他为函数是为了允许用基类的指针来调用子类的这个函数。        定义一个函数函数,才代表函数没有被实现。定义他是为了实现一个接口,起到一个规范的作用,规
转载 2021-07-31 11:52:04
320阅读
函数是在声明函数时被“初始化”为0的函数。声明函数的一般形式是 virtual 函数类型 函数名 (参数表列) =0;   注意: ①函数没有函数体;②最后面的“=0”并不表示函数返回值为0,它只起形式上的作用,告诉编译系统“这是函数”; ③这是一个声明语句,最后应有分号。 函数只有函数的名字而不具备函数的功能,不能被调用。它只是通知编译系统: “在这里声明
转载 2009-06-18 14:23:49
560阅读
一、定义 函数是一种特殊的函数,它的一般格式如下: class <类名> { virtual <类型><函数名>(<参数表>)=0; &hellip; }; 在许多情况下,在基类中不能对函数给出有意义的实现,而把它声明为函数,它的实现留给该基类的派生类去做。这就是函数的作用。 函数可以让类先具有一个操作名称,而没有
转载 精选 2013-02-27 21:33:18
667阅读
数,才代表函数没有被实现。定义他是为了实现一个接口,起到一个规范的作用,规范继承这个。类的程序员必须实现这个函数。2.关于实例化一个类:有函数的类是不可能生成类对象的,如果没有函数则可以。比如:classCA{public:virtualvoidfun()=0;//说明fun函数函数virtualv.
转载 2012-05-13 02:55:00
167阅读
2评论
简洁易懂讲清原理,讲不清你来打我~ 函数是实现的,作用是为了让这个函数在子类可以被覆盖,编译器可以后期绑定达到多态,函数只是一个接口,是函数的声明,留到子类去实现 定义函数的目的是使派生类仅仅基础基类的函数接口 函数的目的是告诉子类设计者,如果不想写函数,可以借助基类的确实版本 非虚函 ...
转载 2021-07-26 14:29:00
384阅读
2评论
首先:强调一个概念定义一个函数函数,不代表函数为不被实现的函数。定义他为
转载 2023-07-11 16:38:59
90阅读
函数函数可以定义在同一个类(class)中,含有函数的类被称为抽象类(abstract class),而只含
原创 2022-07-11 15:57:07
301阅读
目录一、定义二、引入原因三、相似概念编辑本段一、定义函数是一种特殊的函数,它的一般格式如下:class {virtual ()=0;…};在许多情况下,在基类中不能对函数给出有意义的实现,而把它声明为函数,它的实现留给该基类的派生类去做。这就是函数的作用。函数可以让类先具有一个操...
转载 2013-03-13 17:32:00
170阅读
正常情况下函数类似于java中的抽象函数,仅仅提供接口,不提供定义,由不同的子类提供不同的实现,从而表现出多态。可是也有两个特殊的情况。情况一:函数也是能够有实现体的。仅仅是因为不能建立基类的对象,因此不能直接调用,可是能够在子类中通过作用域解析操作符静态调用。因此能够在里面加入一些公共的代...
转载 2016-01-26 13:02:00
155阅读
2评论
本文对 C++ 中对函数函数做一次简单的总结。函数:通过 virtual 关键字修饰的函数,作用是允许用父类的指针来调用子类的这个函数函数具有函数体,「」不代表它是未实现的,相反地,它是必须要有函数体。函数函数未实现(没有函数体)。定义函数是为了实现一个接口,起到一个规范的作用,规范继承这个类的程序员必须实现这个函数函数class A { public: vi
转载 2023-08-09 20:47:32
143阅读
原文链接函数的作用 在许多情况下,在基类中不能对函数给出有意义的实现,而把它声明为函数,它的实现留给该基类的派生类去做。1.首先:强调一个概念 定义一个函数函数,不代表函数为不...
转载 2013-01-27 13:08:00
173阅读
2评论
=0 https://baike.baidu.com/item/函数 函数是一种特殊的函数,在许多情况下,在基类中不能对函数给出有意义的实现,而把它声明为函数,它的实现留给该基类的派生类去做。这就是函数的作用。 函数也可以叫抽象函数,一般来说它只有函数名、参数和返回值类型,不
转载 2017-12-01 08:24:00
179阅读
2评论
  • 1
  • 2
  • 3
  • 4
  • 5