abstract 相关问题

abstract是由多种面向对象编程语言共享的关键字。可以将方法和类标记为抽象,以指示它们不包含应用程序逻辑的完整实现,并且必须进行扩展。抽象类无法实例化,其目的是为其子类提供统一的接口,以及不必为每个子类重新实现的常用方法的实现。

声明和实例化时抽象类和泛型问题的结合

我正在努力使用 C# 中的一个应用程序,它是一个文档审阅应用程序,用于在文档中搜索搜索词列表。它需要获取 PDF 或 WORD 文档,将来可能还需要获取其他文档。 我

回答 1 投票 0

C# 抽象类和泛型的组合声明和实例化时的问题

我正在努力使用 C# 中的一个应用程序,它是一个文档审阅应用程序,用于在文档中搜索搜索词列表。它需要获取 PDF 或 WORD 文档,将来可能还需要获取其他文档。 我

回答 1 投票 0

向基类构造函数传递参数

如果基类和派生类都有带参数的构造函数,那么我们在哪里将参数传递给基类构造函数?

回答 2 投票 0

如何通过接口调用抽象静态方法?

我正在寻找一种比反射更好的方法来调用一堆类上的静态方法。 考虑一下我有一个工厂是这样播种的: 私有静态 IReadOnlyDictionary 我正在寻找一种比反射更好的方法来调用一堆类上的静态方法。 假设我有一家工厂是这样播种的: private static IReadOnlyDictionary<string, Type> buildableTypes = typeof(IBuildable).Assembly.GetTypes() .Where(t => t.IsSubclassOf(typeof(IBuildable))) .Where(t => !t.IsAbstract) .ToDictionary(t => t.Name, t => t); 并考虑 IBuildable 是这样的: public interfact IBuildable { static abstract bool IsBuildable(string params); } 我想获取给定当前参数的所有可构建类型。 var currentlyBuildableTypes = buildableTypes.Values .Where(t => /* t.IsBuildable(params) */); // not sure what goes here 我想避免实例化每个类,因为可能会有相当多的数量。我可以很容易地通过反射来做到这一点,但考虑到 C# 11 中新的静态抽象接口,我希望有一种更优雅的方式来实现这一点。请注意,在这种情况下,使用泛型似乎也不是一种选择,因为直到运行时我才知道类型。 有时你只需要多介绍几种类型即可。 public interface IBuildable { static abstract bool IsBuildable(string parms); } public abstract class BuildHelper { public abstract Type Type { get; } public abstract bool IsBuildable(string parms); } public class BuildHelper<T> : BuildHelper where T : IBuildable { public override Type Type => typeof(T); public override bool IsBuildable(string parms) => T.IsBuildable(parms); } private static IReadOnlyDictionary<string, BuildHelper> buildableTypes = // TODO, left as an exercise for the reader

回答 1 投票 0

为什么类加载时静态块不运行?

导入java.io.*; 导入 java.util.*; 公共类 Locations 实现 Map { 私有静态Map位置=新的LinkedHashMap import java.io.*; import java.util.*; public class Locations implements Map<Integer, Location> { private static Map<Integer, Location> locations = new LinkedHashMap<Integer, Location>(); private static Map<Integer, IndexRecord> index = new LinkedHashMap<>(); private static RandomAccessFile ra; static { try { ra = new RandomAccessFile("locations_rand.dat", "rwd"); int numLocations = ra.readInt(); long locationStartPoint = ra.readInt(); int i=0; while(ra.getFilePointer() < locationStartPoint) { int locationId = ra.readInt(); int locationStart = ra.readInt(); int locationLength = ra.readInt(); IndexRecord record = new IndexRecord(locationStart, locationLength); index.put(locationId, record); System.out.println(i++); } } catch(IOException e) { System.out.println("IOException in static initializer: " + e.getMessage()); } } public static void main(String[] args) throws IOException {} 静态块的执行 我稍微修改了你的代码,但看不到任何缺陷。有了这个代码 public class Main { static { System.out.println("Static initializer"); } public static void main(String[] args) { System.out.println("Main method"); } } 我得到了预期的输出: Static initializer Main method 您可能没有注意到,因为没有抛出异常,但没有数据可供读取。

回答 1 投票 0

有没有办法创建一个不能在程序集之外实现的公共.NET接口?

为了保持.NET 中的二进制向后兼容性,通常不能向公共类和接口添加新的抽象方法。如果这样做,则针对旧版本的

回答 3 投票 0

无法实例化抽象类?

我得到了这个: 核心类 { 受保护: 静态无符号 int id_seed; 无符号整型 ID; std::字符串状态; 民众: 朋友级CPU; 核(); 〜核心(); 虚拟虚空处理器...

回答 1 投票 0

使用 BioPython 从 PubMed 中提取摘要并写入 CSV

我对Python很陌生,想使用bio entrez包从pubmed中提取摘要。我可以根据给定的 ID 列表获取摘要并写入 csv。 我的代码是: 论文 = fetch_det...

回答 1 投票 0

当字段是抽象类型时,MapStruct 将模型的字段映射为空

我有一个类,它有一个字段,而该字段又是一个抽象类。我希望 MapStruct 能够从传入的 DTO 映射到内部模型,包括抽象的所有子字段......

回答 1 投票 0

如何在现有语言中指定不同语言结构的抽象语法?

我试图解决在 Haskell 中指定不同语言结构的抽象语法的问题,例如变量声明、数组声明、if-else 语句等,但我同意...

回答 1 投票 0

“interface”关键字是否从 Dart 中删除了?

可以肯定的是,Dart 现在是否删除了显式定义接口,转而通过抽象隐式定义它? 我在 Dart 和接口隔离原则中看到了它,但是我...

回答 3 投票 0

在C#中,如果默认所有接口成员都是public和abstract的,为什么我们不能在实现类时使用override呢?

在C#中,如果默认所有接口成员都是public和abstract的,为什么我们不能在实现类时使用override呢?虽然我们可以在抽象类中使用重写。 接口IE示例 { int Ara(...

回答 1 投票 0

类方法未通过

使用系统; 使用 System.Collections.Generic; 使用 System.Linq; 使用系统文本; 使用 System.Threading.Tasks; 命名空间圆区域 { 内部课程计划 { //创建一个基础...

回答 1 投票 0

在乳胶“书”中包含摘要的最佳方法?

我一直在寻找这个问题的答案,但似乎找不到,所以我希望这里有人可以帮助我。 我正在用 Latex 写一篇论文,并且非常喜欢 \

回答 2 投票 0

如何保持抽象泛型类抽象和泛型的外部引用?

我正在尝试做类似以下的事情 - 公共抽象类Utility { // 返回值不能缓存在类范围的字段中,因为它们需要由线程调用

回答 1 投票 0

重写抽象成员时如何强制使用 override 关键字?

TypeScript 编译器提供 noImplicitOverride 设置,如果设置为 true,则在覆盖非抽象成员时将强制使用 override 关键字。例如: 抽象类A { 公开

回答 1 投票 0

从子类集合中实例化类,同时保持对 Typescript 中静态成员的访问

假设你有 抽象类 A { ... } B 类扩展 A { ... } C 类扩展 A { ... } 等等等等 并且您希望在使用时拥有一种属性来区分这些类......

回答 1 投票 0

将抽象类转换为非抽象子类的实用程序类型?

我有一个抽象类,我想生成一个与该类型的任何非抽象子类匹配的类型,而不是其实例。这可能吗? 抽象类A { } 函数 b(类型:

回答 1 投票 0

是否可以限制抽象类仅声明接口中存在的函数

我的用例是我有2个抽象类(subClassA和subClassB),我想限制如果A类有某种方法(funcA),那么B类也必须有(funcA),反之亦然。 接口 A() { 酒吧...

回答 1 投票 0

继承抽象类并在构造函数中进行配置

我来自 PHP 世界,目前正在实现我的第一个 TypeScript 项目。不幸的是,很多我在 PHP 中已经习惯了很长时间的东西在这里不起作用。其中之一是

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.