- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我刚刚开始接触java。只是为了确保我能正确解释这一点并理解术语。看起来子类型多态性将由两个组件组成:多态对象和多态方法。
我的问题所以 Animal a = new Dog();
“a” 会是多态对象,而重写的方法会是多态方法吗?
最佳答案
多态性是编程语言的一项功能,允许例程使用不同类型的变量。如果某段代码可以同时使用某些不同的类型,则该代码是多态的。 多态代码越多越好。
多态性有两种类型 - 通用和临时:
toString()
方法适用于任何引用类型);f(int)
可以与 int
、 一起使用字节
、短
和字符
)。有三种类型的临时多态性:
double
的方法也可以接受 7 个基元中的任何一个);+
符号可以重载 );有两种通用多态类型——参数多态和子类型多态:
T
或 E
字符,可以替换为任何类型)。所有静态方法都是非虚拟,所有非静态方法都是虚拟。
虚拟方法 – 是类的方法,可以在子类中重写,方法调用的具体方法实现将在运行时中定义。然后,开发人员无需知道对象的确切类型即可使用虚拟方法来使用该对象:只需知道该对象是声明此方法的类或类的子类的实例即可。
虚方法是多态性实现的非常重要的方式。它们允许创建可应用于基类及其任何子类的对象的通用代码。同时基类定义了与对象协调的方式,它的任何后代都可以有这种方式的具体实现。
多态性也可以通过使用继承来实现,因为如果我们有父类和子类,并且我们有父类的代码,那么我们也可以将它与子类一起使用(例如接受java.lang.Object
可以接受任何其他类型)。
可以使用虚函数操作的对象称为多态对象。
并且方法重写不被视为多态性。签名多态方法是一种可以使用多种调用签名和返回类型中的任何一种进行操作的方法。
这是多态性的一个很好的例子:
Animal a = new Dog();
在您的示例中,a
是 Animal
类型对 Dog
类型对象的引用。
编译器检查表达式的左侧部分,并且JVM在右侧部分的基础上工作。
关于java - 亚型多态性成分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39879235/
我来自 Asp.Net 世界,试图理解 Angular State 的含义。 什么是 Angular 状态?它类似于Asp.Net中的ascx组件吗?是子页面吗?它类似于工作流程状态吗? 我听到很多人
我一直在寻找 3 态拨动开关,但运气不佳。 基本上我需要一个具有以下状态的开关: |开 |不适用 |关 | slider 默认从中间开始,一旦用户向左或向右滑动,就无法回到N/A(未回答)状态。 有人
我是一名优秀的程序员,十分优秀!