Java 编译时多态性运行时多态性是这样的吗?
通过这项研究,我学到了: 重载、运算符重载和重写就是我们所说的多态性 多态性意味着同一实体有时行为不同 例如: 参数化Java 编译时多态性运行时多态性是这样的吗?,java,c++,polymorphism,Java,C++,Polymorphism,通过这项研究,我学到了: 重载、运算符重载和重写就是我们所说的多态性 多态性意味着同一实体有时行为不同 例如: 参数化 add(12, 13); add(12.2, 13.3); 同一实体(add())有时表现不同(适用于double,适用于int)。 //模板在这里也起作用 临时的 Animal dogInstance = new Dog(); Animal catInstance = new Cat(); dogInstance.sound(); //bark catInstance.so
add(12, 13);
add(12.2, 13.3);
同一实体(add())有时表现不同(适用于double,适用于int)。//模板在这里也起作用
临时的
Animal dogInstance = new Dog();
Animal catInstance = new Cat();
dogInstance.sound(); //bark
catInstance.sound(); //meow
同一实体(sound())有时表现不同sound()将根据什么实例(狗或猫)工作。
重载、模板和泛型发生在编译时(编译时多态性)。
重写,运算符重载在运行时发生(运行时多态)。
参数多态性是指同一代码可以应用于多种数据类型。
例如重载、模板和泛型
特殊多态性是指不同的代码用于不同的数据类型。
例如,重写、运算符重载
附加问题:
为什么运算符重载特殊(动态绑定) 此外: 如果您是一名程序员,您是否应该考虑运行时多态性、编译时多态性、动态链接、静态链接、框架含义等问题
框架和库之间的区别,什么是重框架意味着什么是轻框架意味着什么等等,或者我应该继续编程,只要我的程序工作吗?在Java中,你没有操作符重载,即使对于
==
,这会让新手Java程序员感到困惑
您需要理解基本的多态性原则,但我会确保您在揭开封面之前了解编程的所有高级功能
我不认为什么是重框架或轻框架有一个标准定义。我认为这主要是一种设计策略,要么将所有内容都包含在一个库中,要么尽可能简单。在Java中没有运算符重载,即使对于
==
,这也会让新手Java程序员感到困惑
您需要理解基本的多态性原则,但我会确保您在揭开封面之前了解编程的所有高级功能
我不认为什么是重框架或轻框架有一个标准定义。我认为这主要是一种设计策略,要么将所有内容都包含在一个库中,要么尽可能简单。我将尝试以稍微不同的方式回答您的两个问题 编译时/运行时:在编译时,编译器只能验证语法正确的内容。它是可以执行行为评估的运行时。e、 g 如果您有两个类
B
和C
扩展A
。有一种方法是
声明返回A
。在您的调用方中,您希望它会返回
B
的实例。您可以将强制转换返回值键入B
作为(B)A
。编译程序
我不会在这里抱怨任何问题。但如果在运行时,它发现,您的方法
是c
的返回实例,它将失败
这里我想解释的是:有些行为只能在运行时进行评估
编程:当您编写小型教程程序时,您所关心的只是程序的成功和您的基本学习。当您编写更大/使用量更大的应用程序时,您必须非常小心。字符串连接、变量选择、迭代次数、对象引用等一切都非常重要
我希望这有帮助 我将尝试以稍微不同的方式回答您的两个问题 编译时/运行时:在编译时,编译器只能验证语法正确的内容。它是可以执行行为评估的运行时。e、 g 如果您有两个类
B
和C
扩展A
。有一种方法是
声明返回A
。在您的调用方中,您希望它会返回
B
的实例。您可以将强制转换返回值键入B
作为(B)A
。编译程序
我不会在这里抱怨任何问题。但如果在运行时,它发现,您的方法
是c
的返回实例,它将失败
这里我想解释的是:有些行为只能在运行时进行评估
编程:当您编写小型教程程序时,您所关心的只是程序的成功和您的基本学习。当您编写更大/使用量更大的应用程序时,您必须非常小心。字符串连接、变量选择、迭代次数、对象引用等一切都非常重要
我希望这有帮助 请编辑您的帖子以使用
句子大小写
。。我们会处理的。所以,你的问题是,你是否应该深入了解你在做什么,或者只要你的程序正常运行,你就可以“不在乎”,我能理解吗?我们这里的大多数人都可以很好地阅读,而不必使用所有的大写和粗体!!抱歉,我认为这会有帮助,请编辑您的帖子,使用句子大小写。。我们会处理的。所以,你的问题是,你是否应该深入了解你在做什么,或者只要你的程序正常运行,你就可以“不在乎”,我能理解吗?我们这里的大多数人都可以很好地阅读,而不必使用所有的大写和粗体!!对不起,我以为这会有帮助。对不起,我忘了java中没有运算符重载。对于你来说,什么是即席多态性和参数多态性?它们不是我在Java中遇到的术语。在Java中,JIT可以基于运行时行为优化多态性,这是毫无价值的。这意味着它可以在明显动态的情况下静态应用,例如,如果