问题标签 [abstract]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
1632 浏览

c# - 抽象属性的可访问性

我有一个抽象类,它的抽象属性设置为同时具有 Get 和 Set。我知道我总是希望能够从派生类中获取此属性,但在某些情况下,在某些类型的派生类中设置此属性没有意义。

我不能只在派生类中省略 Set 访问器(参见下面的代码示例)。我可以覆盖派生类中的 set 访问器,对用户传递的值不做任何事情。但是有没有另一种方法可以使特定派生类中的属性成为只读?最终,我将在属性网格中显示这些属性,并且我不希望用户将值输入到不会执行任何操作的字段中。也许我只是在特定的派生类中将该属性属性为只读?

此外,我真的不想弄乱任何类型描述​​符的东西来让属性在属性网格中正确显示,例如覆盖 ICustomTypeDescriptor。

0 投票
8 回答
66353 浏览

php - 为什么 PHP 5.2+ 不允许抽象静态类方法?

在 PHP 5.2 中启用严格警告后,我从一个最初编写时没有严格警告的项目中看到了大量严格标准警告:

严格标准静态函数Program::getSelectSQL()在 Program.class.inc 中不应是抽象的

所讨论的函数属于抽象父类 Program 并被声明为抽象静态,因为它应该在其子类中实现,例如 TVProgram。

我确实在这里找到了有关此更改的参考:

删除了抽象静态类函数。由于疏忽,PHP 5.0.x 和 5.1.x 允许在类中使用抽象静态函数。从 PHP 5.2.x 开始,只有接口可以拥有它们。

我的问题是:有人可以清楚地解释为什么 PHP 中不应该有抽象静态函数吗?

0 投票
4 回答
19518 浏览

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

在 Java 中重写非虚拟方法时,@Override建议使用注解,但如果我实现抽象方法怎么办?我@Override也应该使用吗?

0 投票
5 回答
8295 浏览

c# - 抽象类中的 C# 常量字段

我在抽象类中声明 const 字段时遇到问题。为什么是这样?

编辑

我应该澄清一下。我的问题是我的子类看不到 const 字段:

如果我删除 const 关键字,我可以从一个孙子班得到它。

0 投票
6 回答
6633 浏览

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

我知道 Perl 的 OO 模型相当原始。在大多数方面,它本质上是一个命名空间黑客。

不过,我想知道是否有可能创建类似“界面”的东西?我的目标是拥有一个基类,从其扩展其他基类,其主要目的是强制这些子类执行某些方法(按名称很好,不需要签名)。我真的不在乎它是“纯虚拟”类(如 Java 中的“接口”)还是具有超类中这些方法的实际实现存根的具体类,但我想要的是使其具有确定性的必要性子类实现超类的某些方法。

这可能吗?如果是这样,怎么做?

0 投票
3 回答
57554 浏览

java - 如何通过反射确定 Java 类是否是抽象的

我正在通过 Jar 文件中的类进行交互,并希望找到那些不是抽象的。我可以通过实例化类并捕获 InstantiationException 来解决这个问题,但这会影响性能,因为某些类的启动很繁重。我在 Class.java 文档中找不到明显像 isAbstract() 的东西。

0 投票
5 回答
249 浏览

openid - 为什么要使用开放 ID?

使用开放式 ID 的主要优势是什么?

0 投票
15 回答
8857 浏览

c# - 接口还是抽象类?

对于我的新宠物项目,我有一个设计问题,已经决定了,但我也想要一些其他的意见。

我有两个类(简化):

在项目的后期,MyObjectGroup应该MyObject平等地使用。为此,我可以采取两种方式:

  • 创建接口:IObject
  • 创建一个抽象类:ObjectBase

我决定走接口的方式,我以后在代码中不能ObjectBase每次都写,而IObject只是为了方便 - 但是这种方式还有什么其他好处?

其次,添加IXmlSerializable到整个故事中怎么样?让接口继承自抽象基类IXmlSerializable还是有更多优点可以IXmlSerializable在抽象基类中实现?

0 投票
1 回答
200 浏览

asp.net - ASP.NET System.Web.Abstractions 为什么将它们创建为抽象基类?

真的如上所述,我想知道为什么微软将抽象作为抽象类而不是接口发布?

我会对任何见解感兴趣,因为我需要对标准的东西做类似的事情,比如文件和目录的 System.IO 功能,但是我觉得界面会感觉更好?

选择抽象一定有一个很好的理由,除了它更适合他们的程序集命名空间 System.Web.ABSTRACTions 的事实。

谢谢

0 投票
4 回答
5905 浏览

java - 抽象代码和通用代码之间的区别

在 Java 的情况下,“抽象”和“通用”代码有什么区别?两者的意思一样吗?