language-agnostic - 抽象基类何时可以拥有(非静态)数据成员?

标签 language-agnostic oop abstract-class

我猜问题的标题总结了它。有没有什么时候 ABC 拥有数据成员会被认为是好的设计?我一直在想有没有这样的情况是可以的。我唯一能想出的都是静态的,即使这样也有点牵强。

最佳答案

我不明白为什么 ABC 不能正确地拥有每个实例(又名非静态)数据成员,因为需要支持它提供给子类的方法。以存在 ABC 来提供模板方法 DP(钩子(Hook)方法是抽象的)的常见情况为例——如果组织方法的部分功能是更新一些实例变量(例如,计算方法被调用),那么显然这些变量也应该由 ABC 提供。你能更好地解释为什么你认为这是糟糕的设计吗?!

关于language-agnostic - 抽象基类何时可以拥有(非静态)数据成员?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/903054/

相关文章:

math - float 学有问题吗?

c# - 命名空间内的私有(private)类

c# - 从 C# 中反射(reflect)的 OOP 角度来看,动态多态性、抽象类和接口(interface)之间有什么区别?

compact-framework - 当具体类型派生自抽象基类时,Ninject 无法解析接口(interface)类型

language-agnostic - 跟进 : Finding an accurate "distance" between colors

language-agnostic - 通过估算一年编写的代码来计算可以节省多少时间

javascript - 如何将两个数组值连接成 JS 对象的同级键/值对

php - 在父函数中调用子对象

python - 在 Python 中,如何确定可迭代对象是否具有稳定的迭代顺序?

language-agnostic - 如何处理霍夫施塔特定律?