这可能是一个通用的OOP问题.我想根据它们的用法在接口和抽象类之间进行一般性比较.
什么时候想要使用接口?何时想要使用抽象类?
请解释我何时应该使用PHP interface以及何时使用PHP abstract class?
我如何才能改变自己abstract class的态度interface?
如何在Python中创建类或方法摘要?
我试着__new__()像这样重新定义:
class F:
def __new__(cls):
raise Exception("Unable to create an instance of abstract class %s" %cls)
Run Code Online (Sandbox Code Playgroud)
但是现在如果我创建一个G继承自F这样的类:
class G(F):
pass
Run Code Online (Sandbox Code Playgroud)
然后我也无法实例化G,因为它调用了它的超类__new__方法.
有没有更好的方法来定义抽象类?
为什么可以在C#中为抽象类编写构造函数?
据我所知,我们无法实例化一个抽象类..那么它的用途是什么?
你无法实例化这个类,对吧?
我很惊讶在阅读ES6时我找不到关于抽象类的任何内容.(通过"抽象类"我正在谈论它的Java含义,其中抽象类声明了子类必须实现的方法签名才能实现可实现化).
有没有人知道在ES6中实现抽象类的任何约定?能够通过静态分析捕获抽象类违规会很好.
如果我在运行时提出错误来表示尝试抽象类实例化,那么错误是什么?
我们总是声明一个纯虚函数:
virtual void fun () = 0 ;
Run Code Online (Sandbox Code Playgroud)
即,它总是被赋值为0.
我的理解是,这是将此函数的vtable条目初始化为NULL,此处的任何其他值都会导致编译时错误.这种理解是否正确?
如何使用PHPUnit测试抽象类的具体方法?
我希望我必须创建某种对象作为测试的一部分.虽然,我不知道最好的做法,或者如果PHPUnit允许这样做.
abstract-class ×10
oop ×4
interface ×3
inheritance ×2
java ×2
python ×2
unit-testing ×2
abc ×1
abstract ×1
c# ×1
c++ ×1
class ×1
constructor ×1
ecmascript-6 ×1
javascript ×1
mocking ×1
mockito ×1
php ×1
phpunit ×1
pure-virtual ×1