首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >哪一个OO概念是"Base =新派生()“的一个例子?

哪一个OO概念是"Base =新派生()“的一个例子?
EN

Stack Overflow用户
提问于 2009-04-22 19:47:03
回答 10查看 3.9K关注 0票数 10

我通过了一次考试,遇到了一个问题,在这个问题上,我们没有和同事们达成一致。

С++

代码语言:javascript
复制
  1 class Base {};
  2 class Derived : public Base {};
  3 class Foo
  4 {
  5 public:
  6     Foo()
  7     {
 -8-         Base* b = new Derived(); // Concept name is?
  9     }
 10 };

C#

代码语言:javascript
复制
  1 abstract class Base{}
  2 public class Derived : Base{}
  3
  4 public class Foo
  5 {
  6    public Foo
  7    {
 -8-        Base b = new Derived(); // Concept name is?
  9    }
 10 }

问题是:上面的第8行是以下oo概念的一个示例

  1. 多态
  2. 聚合
  3. 封装
  4. 抽象化
  5. 继承

请将答案与知识来源联系起来。

测试是“OO概念”在breinbench上。它是免费的。

更新:

polymorphism辩护的答案之一

简单地说,多态性是一种类型A以另一种类型出现和使用的能力。在强类型语言中,这通常意味着A类型从B类型派生而来,或者类型A实现了一个表示B类型的接口。

来自维基百科,它为继承辩护

继承有时也称为泛化,因为是--关系表示对象类之间的层次结构。

因此,继承具有另一个视图,称为多态,它描述了由共享控制代码控制的许多代码段。

所以a'(inheritance).是Base = new Derived()秀其结果是polymorphism.

所以我怀疑什么是对的?

EN

回答 10

Stack Overflow用户

发布于 2009-04-22 21:09:03

这个问题很容易..。这是多态性

多态行为是由于继承而完成的。您可以将派生实例视为Base,因为派生继承来自Base。这是将多态性应用于OO语言中的类型时的定义。

科学)

更新,更新

我希望这足够确定..。这些都是不同的方式来表达相同的东西。

多态(C#编程指南)

通过继承,一个类可以作为多个类型使用;如果它实现接口,它可以作为它自己的类型、任何基本类型或任何接口类型。这称为多态。

更新

考虑到这些评论我会尽量说得更具体..。我并不是说派生继承了Base,即该行是多态行为的一个示例,我是说将实例分配给它派生的类型的变量是多态行为的一个例子。引用我所附链接的第一句..。

在计算机科学中,多态是一种编程语言特性,允许使用统一的接口处理不同数据类型的值

这意味着我可以将派生的一个实例作为Base的一个实例来处理,这表明了一个多态行为。这并不取决于类中是否存在虚拟方法才是true。

还有一句来自不同来源的话..。

简单地说,多态性是一种类型A以另一种类型出现和使用的能力。在强类型语言中,这通常意味着A类型从B类型派生而来,或者类型A实现了一个表示B类型的接口。

票数 31
EN

Stack Overflow用户

发布于 2009-04-22 21:25:34

真正的答案是:一个不完善的、因此毫无意义的问题。

这应该是一个标准化的选择题,但是你有很多年的经验还没有达成共识。唯一应该得出的结论是,作为知识的衡量标准,它是无用的。

票数 14
EN

Stack Overflow用户

发布于 2009-04-22 19:48:26

这个片段是关于继承

概念概述

抽象是关于从对象的角度来建模一个现实世界概念的整个想法,而不是考虑函数调用或其他东西。它基本上是把对象看作是独立的实体。

封装是在定义良好的接口之后,将对象的实现隐藏在外部世界的行为。

继承是派生类和基类之间的关系以及概念的分类。它定义了“is -一种”实体之间的关系,增加了在需要基的情况下使用派生类的能力。

多态性意味着两个对象在接口上相似,但行为方式不同(考虑virtual方法)。

聚合定义了两个概念之间的“has”关系。表示一个对象是由另一个实体组成的。

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/778888

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档