在Java中有没有类似Java脚本的"prototype"的东西?
Is there anything similar to JavaScript's "prototype" in Java?
是的,所以我对 Java 相当了解,但我从未深入研究过 JavaScript。我和一个知道 JavaScript 但没研究过 Java 的熟人聊天。他告诉我 JavaScript 在功能方面而非用途方面优于 Java 的优势。
具体来说,他给我讲的是"prototyping",他讲的好像是多态和继承的概念,但是是无类的。这是真的吗?
我告诉这个人好像是这样,他告诉我原型制作根本不像继承或多态性,他让我去研究它。 Google 在比较这两种语言方面对我帮助不大,所以我来这里是希望找到了解这两种语言并能在这里阐明一些问题的人。
它在某种意义上是相似的,原型是 javascript 中所有对象的父对象,也就是从它继承的函数。 Java 继承在扩展对象和使用接口和抽象方面得到了更明确的定义 类。 Java脚本具有低类型抽象。一切都是函数。一切都可以随意添加属性。没有定义的继承。如果您在 JavaScript 中跟踪调用的堆栈跟踪,它会从最顶层的函数开始,然后向下到原型,直到找到您要查找的调用。另一方面,Java 将查看直接函数或变量调用和 return。它也将遍历但向上朝向 Object parent。 JavaScript 中的所有内容都基于函数,而在 Java 中所有对象都基于 Object。
多态性是通过在 Java 脚本中调用 Object.create 而不是在 Java 中扩展来实现的。 OOJS 在原型继承与对象继承方面有很大不同。在Java
Javascript 是一种函数式语言,因此 Javascript 中的对象是由函数创建的。 Java是面向对象的函数(方法)属于对象。
Java 脚本也是动态类型的,所以对象在运行时获得一个类型,并且确实有一些继承和多态性的元素,但它不是通过像 java 的 classes.
原型设计与编写函数以创建特定类型的新对象并声明现有类型是新类型原型的过程相关联。
新类型将具有旧类型的所有属性以及任何新声明的属性。所以它有点像继承和多态性,但是没有类型来强制执行它,所以如果你超出 class 的定义,你将在运行时得到的是一个未定义的值。
从使用的角度来看,任何对象的客户端代码都可以将其视为链上的任何原型,因此是继承和多态性。
是的,所以我对 Java 相当了解,但我从未深入研究过 JavaScript。我和一个知道 JavaScript 但没研究过 Java 的熟人聊天。他告诉我 JavaScript 在功能方面而非用途方面优于 Java 的优势。
具体来说,他给我讲的是"prototyping",他讲的好像是多态和继承的概念,但是是无类的。这是真的吗?
我告诉这个人好像是这样,他告诉我原型制作根本不像继承或多态性,他让我去研究它。 Google 在比较这两种语言方面对我帮助不大,所以我来这里是希望找到了解这两种语言并能在这里阐明一些问题的人。
它在某种意义上是相似的,原型是 javascript 中所有对象的父对象,也就是从它继承的函数。 Java 继承在扩展对象和使用接口和抽象方面得到了更明确的定义 类。 Java脚本具有低类型抽象。一切都是函数。一切都可以随意添加属性。没有定义的继承。如果您在 JavaScript 中跟踪调用的堆栈跟踪,它会从最顶层的函数开始,然后向下到原型,直到找到您要查找的调用。另一方面,Java 将查看直接函数或变量调用和 return。它也将遍历但向上朝向 Object parent。 JavaScript 中的所有内容都基于函数,而在 Java 中所有对象都基于 Object。
多态性是通过在 Java 脚本中调用 Object.create 而不是在 Java 中扩展来实现的。 OOJS 在原型继承与对象继承方面有很大不同。在Java
Javascript 是一种函数式语言,因此 Javascript 中的对象是由函数创建的。 Java是面向对象的函数(方法)属于对象。
Java 脚本也是动态类型的,所以对象在运行时获得一个类型,并且确实有一些继承和多态性的元素,但它不是通过像 java 的 classes.
原型设计与编写函数以创建特定类型的新对象并声明现有类型是新类型原型的过程相关联。
新类型将具有旧类型的所有属性以及任何新声明的属性。所以它有点像继承和多态性,但是没有类型来强制执行它,所以如果你超出 class 的定义,你将在运行时得到的是一个未定义的值。
从使用的角度来看,任何对象的客户端代码都可以将其视为链上的任何原型,因此是继承和多态性。