oop - 封装、抽象和多态是否需要继承?

标签 oop inheritance polymorphism encapsulation abstraction

今天我接受了软件工程职位的面试。我已经从 stackoverflow 中阅读了很多关于面试的内容。他们向我询问了与 OOP 相关的正常情况。但他们也问我这些:

没有继承就可以封装吗?

没有继承就可以抽象吗?

没有继承就可以实现多态吗?

我已经根据我对 OOP 的了解回答了这些问题。我不知道是对是错。谁能用一些相关的例子告诉我这些的正确答案。

谢谢

最佳答案

  • 没有继承就可以封装吗?

  • 是的,因为封装是通过访问方法向外界隐藏类属性的能力。
  • 没有继承就可以抽象吗?

  • 好吧,抽象可以指很多东西,但谈到 OOP:
    不可以,抽象类不能直接使用,只能实例化继承的类。
  • 没有继承就可以实现多态吗?

  • 是的,多态性是对多种类型对象的单个接口(interface)的构造,例如,可以接收不同类或数据类型作为参数的单个函数调用。它们可以被继承,也可以不被继承。

    关于oop - 封装、抽象和多态是否需要继承?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36552343/

    相关文章:

    java - OOP - 贷款类别错误

    java - 通过继承改进程序

    ruby-on-rails-3 - 在 Rails find/where 中传递多态查找参数的对象

    c# - 使用带有类型参数的工厂方法创建带有参数化构造函数的派生类

    c++ - 模板的多态使用

    c++ - 需要 OOP C++ 帮助

    javascript - 有没有办法在javascript中代理(拦截)一个类的所有方法?

    java - 如何使用数组内部的整数作为方法的参数。 (测试员)

    c++ - C++ 分配器可以是最终的吗?

    javascript - 不理解Javascript继承