java - C代码如何不可重用而Java如何使用继承来拥有可重用代码?

标签 java c oop inheritance

我最近学了C。看了OOPS我很困惑。

关于 OOPS 的文章说,代码可以通过继承概念在 Java 中重用,这与 C 语言不同,后者是过程式编程范式。但同样可以在 C 中完成,方法是使用一些包含我们想要重用的所有函数的头文件并包含头文件。

我的问题是“重用”一词在 OOPS 世界中的实际含义是什么?

最佳答案

这是无稽之谈——忽略它。 C 或 Java 的内在特性并没有使用这些语言编写的代码在项目之间或多或少地“可重用”。

作者可能假设所有 Java 代码都可以通过使用子类扩展来“可重用”,而 C 代码不能“重用”,因为该语言不支持子类。然而,他们错了,因为:

  1. 这种“重用”方法假设代码只能通过扩展而不是修改来重用。这当然不是真的。

  2. 并非所有 Java 代码都可以使用子类进行有效扩展。事实上,大多数 Java 代码不能以这种方式重用;它必须经过专门设计以支持这种用法。 (例如,不能扩展 final 类。也不可能扩展由单个大函数组成的类而不重新实现整个函数——此时,实际上没有任何东西被“重用” .)

关于java - C代码如何不可重用而Java如何使用继承来拥有可重用代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48717249/

相关文章:

java - 如何在没有互联网连接的情况下获取网络提供的日期和时间?

c++ - 当 mysql 数据库发生更新或更改时,我如何通知我的 C 或 C++ 应用程序

java - 父类(super class)和子类之间的数据所有权

Python:对第一个 OOP 风格脚本的反馈/更正

java - 让类(class)知道它的类型是不是太好了?

java - 理解 java.lang.reflect.InvocationHandler 的 invoke 方法的 "proxy"参数

java - 使用选择查询和动态 SQL 执行 SQL 脚本文件

java - 如何通过位操作反转 View 的可见性

c - 在结构中存储员工详细信息的程序

c++ - 为什么 c/c++ 浮点类型的命名如此奇怪?