在C#/ Java中使用抽象类的技术原因

use*_*312 0 abstract-class

根据OOP,需要抽象类来模拟那些在现实世界中不存在的对象,但它们可以作为几个真实世界对象的基类.

例如:

   BankAccount            
       /\
      /  \
     /    \
    /      \
Current     Savings
Account     Account
Run Code Online (Sandbox Code Playgroud)

这里BankAccount应该被建模为抽象类.

但是在C#/ Java中使用抽象类的技术原因是什么?链接文字

例如:

使用Interfaces的OOP原因是对行为继承进行建模(继承没有真正的层次关系).

在C#/ Java中使用Interfaces的技术原因是为了解决多重继承的问题(如果我没有错!).

duf*_*ymo 8

如果可能的话,抽象类可以有默认行为; 接口不能.

抽象类可以为所有方法或没有方法提供默认行为; 开发者的选择; 接口不能.

抽象类可以具有与所有子类共享的状态; 接口不指定状态.

因此,您的抽象BankAccount可以具有可以授予存储和检查访问权限的余额属性.