abstract相关内容

Java - 包含变量的抽象类?

让抽象类定义实例变量是个好习惯吗? 公共抽象类 ExternalScript extends Script {字符串源;公共抽象无效 setSource(字符串文件);公共抽象字符串 getSource();} 子类 ExternalJavaScript.class 然后会自动获取源变量,但我觉得如果所有子类本身定义源而不是继承,那么阅读代码会更容易. 你有什么建议? /亚当 ..
发布时间:2021-11-26 16:20:23 Java开发

抽象类中的私有构造函数

在 Java 中,在抽象类中使用私有构造函数的目的是什么? 在review中我得到了这个问题,我很好奇,在什么情况下我们需要以这种方式使用构造函数? 我认为它可以与抽象类中的另一个构造函数配对使用,但这很琐碎.也可用于构造超越抽象类的静态内部类. 也许还有更优雅的用法? 解决方案 如果 private 构造函数是类的唯一构造函数,那么原因很清楚:防止子类化.某些类仅用作静 ..
发布时间:2021-11-26 16:20:15 Java开发

我怎样才能制作一个“抽象"?.NET 类库中的枚举?

我正在制作一个服务器库,其中的数据包关联是通过枚举完成的. public enum ServerOperationCode : 字节{登录响应 = 0x00,选择响应 = 0x01,BlahBlahResponse = 0x02}公共枚举 ClientOperationCode : 字节{登录请求 = 0x00,选择请求 = 0x01,BlahBlahRequest = 0x02} 当您在自己 ..
发布时间:2021-11-26 16:20:05 C#/.NET

C#:在不定义新类的情况下创建抽象类的实例

我知道它可以在 Java 中完成,因为我过去广泛使用过这种技术.下面将显示 Java 中的一个示例.(附加问题.这种技术叫什么?如果没有名字,很难找到这样的例子.) 公共抽象类示例{公共抽象无效 doStuff();}公共课从这里开始{公共静态无效主(字符串 [] args){示例 x = 新示例(){公共无效 doStuff(){System.out.println("做了东西");}};x. ..
发布时间:2021-11-26 16:19:54 C#/.NET

我可以在 Perl 中创建类似 Java 的接口吗?

我知道 Perl 的 OO 模型相当原始;在大多数方面,它本质上是一个命名空间黑客. 尽管如此,我想知道是否有可能创建类似“界面"的东西?我的目标是拥有一个基类,从该基类扩展其他类,其主要目的是强制实现这些子类的某些方法(按名称很好,不需要签名).我真的不在乎它是“纯虚拟"类(如 Java 中的“接口")还是具有超类中这些方法的实际实现存根的具体类,但我想要的是确定性地需要子类实现超类的某些 ..
发布时间:2021-11-26 16:19:33 其他开发

Django:单元测试抽象模型的最佳方式

我需要为抽象的基础模型编写一些单元测试,它提供了一些其他应用程序应该使用的基本功能.有必要定义一个继承自它的模型仅用于测试目的;是否有任何优雅/简单的方法来定义该模型仅用于测试? 我见过一些“黑客"使这成为可能,但从未在 django 文档或其他类似地方看到过“官方"方式. 解决方案 我自己刚刚偶然发现了这个功能:您可以从 tests.py 中的抽象模型继承并照常进行测试.当您运行“ ..
发布时间:2021-11-26 16:19:24 其他开发

在 Java 中实现抽象方法时是否应该添加 @Override 注释?

在 Java 中重写非虚方法时,推荐使用 @Override 批注,但如果我实现抽象方法怎么办?那么我也应该使用 @Override 吗? 解决方案 在这种情况下,我倾向于使用 @Override,以便在超类更改时在子类中标记该方法(完全删除该方法,或更改其签名等). 唯一真正的区别是,如果没有注解,如果超类/接口中的方法被更改或删除,有问题的实现只是成为该类的“正常"方法.因此,如 ..
发布时间:2021-11-26 16:19:16 Java开发

Java:抽象类中的静态字段

我只是从一个例子开始,它最好地解释了它: 公共抽象类A{静态字符串 str;}公共类 B 扩展 A{公共 B(){str = "123";}}公共类 C 扩展了 A{公共 C(){str = "abc";}}公共课主要{公共静态无效主(字符串 [] args){A b = 新 B();A c = new C();System.out.println("b.str = " + b.str);Sys ..
发布时间:2021-11-26 16:19:05 Java开发

比较:接口方法 vs 虚方法 vs 抽象方法

每种方法的优缺点是什么? 接口方法 虚拟方法 抽象方法 什么时候应该选择什么?做出这一决定时应牢记哪些要点? 解决方案 虚拟和抽象几乎相同.虚拟方法在基类中有一个可以选择性地被覆盖的实现,而抽象方法没有并且必须在子类中被覆盖.否则它们是相同的.在它们之间进行选择取决于情况.如果您有基本实现,则使用虚拟.如果您不这样做,并且您需要每个后代为自己实现它,您就选择抽象. 接 ..
发布时间:2021-11-26 16:18:41 C#/.NET

抽象类与具体类有何不同?

我理解为什么我们需要 Java 中的抽象类 - 创建子类.但同样可以通过具体类来实现.例如类 Child 扩展了 Parent.这里 Parent 很可能是抽象的 &具体的.那么为什么我们有抽象? 解决方案 抽象类不能直接实例化.将类声明为抽象类意味着您不希望它被实例化并且该类只能被继承.您正在代码中强加规则. 如果您进一步扩展您的父/子关系示例以包含一个 Person 类,那么将 ..
发布时间:2021-11-26 16:18:34 Java开发

在 C++11 中声明接口的最佳方式

众所周知,有些语言有接口的概念.这是Java: public interface Testable {无效测试();} 如何在 C++(或 C++11)中以最紧凑的方式实现这一点,并且代码噪音很小?我很欣赏一个不需要单独定义的解决方案(让标题就足够了).这是一种非常简单的方法,即使我也觉得有问题 ;-) class Testable {民众:虚拟无效测试()= 0;受保护:可测试();Tes ..
发布时间:2021-11-26 16:18:24 C/C++开发

没有“抽象"的 Java 中的运行时多态性?

我正在阅读官方 Oracle 教程,其中以 3 个类的类层次结构示例介绍了多态性的概念;Bicycle 是超类,MountainBike 和 RoadBike 是 2 个子类. 它展示了 2 个子类如何通过声明它的不同版本来覆盖在 Bicycle 中声明的方法“printDescription". 最后,教程最后提到了 Java 虚拟机 (JVM) 为每个变量中引用的对象调用适当的方法 ..
发布时间:2021-11-26 16:18:16 Java开发

抛出的Java抽象类

如果我有一个具有以下功能的抽象类 - 抽象类A{void foo(String s) 抛出异常{throw new Exception("异常!");}} 然后是另一个扩展抽象类并实现自己版本的 foo 的类 - B 类扩展 A{void foo(String s){//做一些*不*抛出异常的事情}} 这会产生问题吗?具体在以下测试用例中 - 集合col = new Collection ..
发布时间:2021-11-26 16:18:08 Java开发

使用更指定的返回类型(协方差)覆盖抽象属性

class Base {}抽象类A{抽象公共列表项目{得到;放;}}派生类:基{}B级:A{私人列表项目;公共覆盖列表项目{得到{退换货品;}放{项目 = 价值;}}} 编译器说 B.Items 必须是 Base 元素列表“以匹配覆盖的成员"A.Items.我怎样才能做到这一点? 解决方案 您最初尝试完成的事情是不可能的 - .NET 不支持方法重载的 co( ..
发布时间:2021-11-26 16:17:56 C#/.NET

Hashmap 和 Hashtable 理论上有什么区别?

hashmap 和 hashtable 理论上有区别吗? 我的意思不是在 Java(或实现)中给出的具体定义中,而是在理论上.哈希表不是使用哈希的映射……因此是哈希映射吗? 解决方案 根据 维基百科,它们是一样的: 在计算中,哈希表(hash map)是一种用于实现关联数组(...)的数据结构 根据维基教科书,是一样的: 哈希表或哈希映射是一种将键与值相关联的数据结 ..
发布时间:2021-11-26 16:17:46 其他开发

处理同音继承方法的规则是什么?

我试图了解 Java 如何处理当具体类从不同类/接口继承(抽象或具体)具有相同名称的方法时出现的歧义情况. 我一直无法找到一般规则,这就是为什么我决定花一些时间通过使用实际方法来解决这个问题. 我考虑了 8 种不同的情况,结合起来 抽象方法 非抽象方法 抽象类 界面 导致这个方案: +-------------------------+|界面 |+-------- ..
发布时间:2021-11-26 16:17:37 Java开发

抽象函数和变量参数列表

我有一个抽象类,我想知道是否可以定义一个带有可变参数列表的抽象函数? 如果可能,请举个例子. 解决方案 是的,原则上是可以的.下面是一个例子.您可以在此处看到输出. 另请阅读此处和此处 #include #include 使用命名空间标准;类抽象类{民众:虚拟双平均(int num,...)= 0;};类具体类:公共抽象类{民众:虚拟双平均(int num, ... ){va ..
发布时间:2021-11-26 16:17:22 C/C++开发

使用没有任何抽象方法的抽象类

抽象类不需要包含任何抽象方法. 除了不能实例化抽象类之外,还有什么其他原因可以使类抽象? 解决方案 抽象类的主要作用是提供一个适当的根类,可以从中派生出具体的(即非抽象的)子类.这是一个强大且通用的功能,可促进代码重用.抽象类封装了一系列数据类型共有的通用特性——这些特性在抽象类中太通用而没有意义,但可以在子类中覆盖 任何具有抽象方法的类都会自动抽象自身,并且必须使用关键字 a ..
发布时间:2021-11-26 16:17:12 Java开发

java中的抽象与抽象

我是一名 java 开发人员,对面向对象的概念有很好的理解(或者,我认为是这样的).现在我正在学习设计模式(从头开始设计模式).我一直在阅读有关 OOPS 概念抽象的内容以简要了解它,阅读更多有关它的内容使我比之前更加困惑. 据我所知,抽象是指隐藏程序的内部细节,同时将接口暴露给其他程序员,而不用担心内部细节.但是,我不明白 抽象类如何适应这种抽象概念,其中抽象类要求我实现抽象方法,在 ..
发布时间:2021-11-26 16:16:59 Java开发