【问题标题】:What is abstraction in C#? [duplicate]C# 中的抽象是什么? [复制]
【发布时间】:2020-03-05 00:57:45
【问题描述】:

我对抽象的许多定义感到困惑。 谁能告诉我什么是抽象以及我们如何实现它?

【问题讨论】:

标签: c# class oop object abstraction


【解决方案1】:

抽象 OOP 理论 在于只为特定问题保留现实世界对象的相关方面。因此,我们谈论对现实的抽象。这是一个减少

例如,在现实世界中,我们的猫和狗是脊椎动物。这种动物具有头部和腿部等特性,以及行走和进食等操作。然后,我们将定义 ,它们将是 Animal 和 Cat 和 Dog。

所以我们有了继承的概念,其中猫和狗继承了共同的属性和操作,然后我们将放在动物级别上,以便在子类中不重复这些元素: 这就是概括。猫会喵喵叫,狗会叫:这就是专精

因此,抽象是将现实世界投射到更有限的概念世界中

进行抽象是识别我们设计计算机系统所需的属性和行为,因此我们拒绝所有我们不需要的东西

例如,在银行系统中,我们识别具有姓名、地​​址等信息的客户。我们采取一切必要的措施,拒绝其他人,比如他们的饮食方式、走路方式或他们最后读的书是什么。

抽象是定义需要的概念(实体及其方面以及它们的行为和它们的关系)并忘记了不需要的东西。这是现实的一部分

我们将 class 命名为来自抽象的 concept,并将 object 命名为该概念在将在计算机上运行的软件域,因此是物化

所有其他 OOP 术语都是用于定义执行此操作的方法的词汇。

例如,封装是掩盖类中的一些属性和操作的过程,这些属性和操作将变得无法从外部访问:这些只是内部事物和行为,例如消化系统。

除了之外,还有多态性接口

How to choose between private and protected access modifier

What is polymorphism

What is the difference between an interface and a class

以下是一些维基词典的定义:

抽象、分离、撤回或带走的行为;退出;被带走的状态。

关注对象的一个​​特征而不是将对象作为一组特征的行为;将所述品质与对象或想法分开的行为。

比较不同对象之间的共性并利用这些相似性进行组织的行为;概括特征的行为;上述概括的产物。

(计算)任何忽略或隐藏细节以捕获不同实例之间的某种共性以控制工程系统(尤其是软件系统)的智力复杂性的泛化技术。

(计算)通过抽象技术产生的任何智力结构。

https://en.wiktionary.org/wiki/abstraction

【讨论】:

    猜你喜欢
    • 2012-11-29
    • 1970-01-01
    • 2014-01-02
    • 2011-01-08
    • 2015-06-12
    • 2012-07-04
    • 2017-02-02
    • 2019-04-11
    • 2023-04-01
    相关资源
    最近更新 更多