abstract-class相关内容
我正在制作一个抽象基类,并认为我可能想要一个纯虚拟信号.但是当我编译时,我收到了我定义的纯虚拟信号的警告: ../FILE1.h:27: 警告:信号不能被声明为虚拟../FILE1.h:28: 警告:信号不能被声明为虚拟 在C++/Qt中定义纯虚拟信号有效吗?定义虚拟信号有效吗? Qt 的信号和插槽文档页面 说你可以定义虚拟插槽但不谈论信号.我似乎找不到关于纯虚拟信号的好信息. 解
..
最近在一次采访中,我被问到一个非常笼统的问题“java中的抽象是什么".我给出了定义,然后是其他一些关于抽象的问题,如什么是抽象方法以及抽象方法和具体方法之间的区别以及等等.然后最后面试官要我举一个实时的例子,我应该在什么时候使用或定义一个类为抽象的.我很困惑.我举了一些例子,但他不相信. 我用谷歌搜索但没有找到真正的解决方案. 那么有人可以给我实时示例,即他在他/她的项目中将一个类定
..
我刚刚在我的 OOP 类中了解了多态性,但我很难理解抽象基类的用途. 抽象类的目的是什么?定义一个抽象基类提供了什么,而不是通过在每个实际类中创建每个必要的函数来提供? 解决方案 抽象类的目的是为一组具体的子类定义一个通用协议.这在定义共享代码、抽象想法等的对象时很有用. 抽象类没有实例.一个抽象类必须至少有一个延迟的方法(或函数).为了在 C++ 中实现这一点,在抽象类中声明
..
假设我有一个如下所示的抽象基类: class StellarObject(BaseModel):标题=models.CharField(max_length=255)描述 = 模型.TextField()slug = models.SlugField(空白=真,空=真)元类:抽象 = 真 现在,假设我有两个从 StellarObject 继承的实际数据库类 class Planet(Stel
..
我经常发现自己将类中的常见行为提取到仅包含一组静态方法的帮助程序/实用程序类中.我经常想知道我是否应该将这些类声明为抽象类,因为我真的想不出实例化这些类的正当理由? 将这样的类声明为抽象类有什么优点和缺点. public [abstract] class Utilities{公共静态字符串 getSomeData(){返回“一些数据";}公共静态无效 doSomethingToObject
..
使用“抽象方法"有什么意义?抽象类不能被实例化,但是抽象方法呢?他们只是在这里说“你必须实现我",如果我们忘记了他们,编译器会抛出错误吗? 还有别的意思吗?我也读过一些关于“我们不必重写相同的代码"的内容,但是在抽象类中,我们只“声明"了抽象方法,因此我们将不得不重写子类中的代码. 你能帮我理解一下吗?我查看了有关“抽象类/方法"的其他主题,但没有找到答案. 解决方案 除了提醒
..
假设我们在一个接口中有两个方法 M1() 和 M2().抽象类也有相同的两个抽象方法.如果任何类实现了这个接口或继承了抽象类,它就必须实现其中的两个方法. 所以对我来说,接口或抽象类在我的场景中的行为似乎是一样的.那么,任何人都可以在在这种特定情况下强调这两者之间的区别,并建议在这里使用抽象类还是接口? 解决方案 抽象类和接口之间存在技术差异,抽象类可以包含方法、字段、构造函数等的实
..
我有一些关于抽象类/方法的基本问题.我知道抽象类的基本用途是为未来的类创建模板.但是它们还有其他用途吗?什么时候应该比接口更喜欢它们,什么时候不呢?另外,抽象方法什么时候有用? 解决方案 我知道抽象类的基本用法是为未来创建模板类.但是还有没有更多的用途其中? 您不仅可以为子类定义模板,抽象类还提供了额外的好处,让您可以定义子类以后可以使用的功能. 您不能在 Java 8 之
..
我已经在 SO 以及网络的其他部分搜索了一个很好的答案,但我还没有找到我真正理解的答案.我将以不同的方式呈现这个,希望答案也能帮助其他人. 据我了解,这两个概念有相同的规则,只是抽象类由于方法实现能力更灵活.另外,我知道您可以实现多个接口并且只扩展一个类,但我确信与我提到的两个不同之处更多. 请查看这两个代码片段,并举例说明我可以用每个示例做什么来让我想要或不想使用另一个. 抽象
..
重复: 何时使用接口而不是抽象类,反之亦然? 可能是最著名的软件开发人员工作面试问题之一. 你的答案是什么? 编辑:我想知道你会如何在现实生活中回答这个问题.请尝试像在真实的工作面试中一样制定您的答案(完整,但不要太长,当然不要发布链接). 解决方案 接口只描述其方法的实际签名等.任何实现该接口的类都必须提供显式实现. 抽象类可以包含其方法等的部分实现.
..
我有两个 Kafka 消费者 ConsumerA 和 ConsumerB.我想在同一台机器上运行这两个相互独立的 kafka 消费者.他们之间根本没有任何关系.这两个 kafka 消费者将在同一台机器上处理不同的主题. 每个使用者都应该有一个不同的 Properties 对象. 每个使用者都应该有不同的线程池配置,因为它们可以在需要时独立于其他使用者以多线程方式(使用者组)运行. 以
..
我有一个项目,其中有一个接口,一个实现相同接口的抽象类,然后是一组实现该接口并扩展抽象类的具体类. 公共接口发票{无效过程();}@成分公共抽象类 AbstractInvoice(){@资源受保护的作家作家;受保护的validateInvoice(){//一些实现}}@成分public Class TypeAInvoice() 扩展 AbstractInvoice 实现 Invoice{@覆盖公
..
我们正在使用 Jersey/Jackson 将 JSON 数据解组为 Java DTO.我的一个 DTO 是一个抽象类,我想将 JSON 数据解组到他的一个扩展 DTO.例如,假设我有这些 DTO: 公共抽象类 AnimalDTO{}公共类 DogDTO 扩展了 AnimalDTO{}公共类 CatDTO 扩展了 AnimalDTO{} 我想解组这个 JSON 数据: {Zoo: {Anim
..
我正在尝试扩展这个插件以供我自己使用... https://github.com/jamesmontemagno/Xamarin.Plugins/blob/master/Connectivity/Connectivity/Connectivity.Plugin.Abstractions/BaseConnectivity.cs 但是当我将代码复制到 Visual Studio 时,我遇到
..
可能的重复: 为什么Java中没有多重继承, 但允许实现多个接口 为什么Java允许从接口而不是抽象或具体类的多重继承 解决方案 具体类的多重继承引发了 各种问题. 例如,如果一个类从两个不同的基类继承同一个方法的两个不同实现怎么办? 为避免这些问题,Java 不支持此功能. 与具体类不同,接口不能有方法体. 因此,这些问题都不适用于接口.
..
我有两个类继承自同一个父P: from abc import ABCMeta, abstractmethodP类(对象):__元类__ = ABCMeta@抽象方法def foo(self):经过C(P)类:经过D类(元组,P):经过 唯一的区别是D继承自tuple和P,而C继承自P 仅. 现在这是行为:c = C() 出现错误,正如预期的那样: TypeError: 不能用抽象方法
..
如果我尝试从一个类到一个接口的无效转换,那么编译器不会抱怨(错误发生在运行时);但是,如果我尝试对抽象类进行类似的转换,它确实会抱怨. class 程序{抽象类 aBaz{公共抽象 int A { 得到;}}接口 IBar{int B { 得到;}}Foo类{公共 int C { 得到;}}静态无效主(){foo foo = new foo();//编译器错误,正如预期的那样,因为 Foo 没有
..
以下代码可在各种 gcc 和 clang 版本上编译 - 当使用 gcc 5.3.1 编译和运行时,它会打印 A() 然后以纯虚调用错误中止. #include A级{民众:一种() {printf("A()\n");}虚拟无效 b() const = 0;};int main(){const A&一种{};a.b();返回0;} 我意识到将引用绑定到临时对象并不理想(尽管我认为这
..
一个基础项目包含一个抽象基类 Foo.在单独的客户端项目中,有实现该基类的类. 我想通过调用基类上的一些方法来序列化和恢复具体类的实例: //在基础项目中:公共抽象类 Foo{抽象无效保存(字符串路径);抽象 Foo Load(字符串路径);} 可以假设在反序列化时,所有需要的类都存在.如果可能的话,序列化应该在 XML 中完成.使基类实现 IXmlSerializable 是可能的.
..
在 Java 中,我可以在抽象类中获取扩展它的具体类的实例吗? 解决方案 是的,您可以通过调用 this.getClass().这将为您提供 Class this 的运行时类型的实例. 如果你只想要类的名称,你可以使用 this.getClass().getName(). 最后,还有this.getClass().getSimpleName() 和 this.getClass(
..