Java 这些是多态性的例子吗?
在浏览了一些关于多态性的问题之后,似乎多态性是Java中的一个普遍概念,它允许一个对象的行为就像它是另一个类的实例一样;因此,代码更独立于具体类。考虑到这一点,以下Java 这些是多态性的例子吗?,java,oop,polymorphism,Java,Oop,Polymorphism,在浏览了一些关于多态性的问题之后,似乎多态性是Java中的一个普遍概念,它允许一个对象的行为就像它是另一个类的实例一样;因此,代码更独立于具体类。考虑到这一点,以下main()多态性的方法用法中的两个方法调用是否正确 abstract class A { void f() { System.out.println("A.f()"); } abstract void g(); } class B extends A { void g() { System.out.println("B
main()
多态性的方法用法中的两个方法调用是否正确
abstract class A
{
void f() { System.out.println("A.f()"); }
abstract void g();
}
class B extends A
{
void g() { System.out.println("B.g()"); }
}
public class Test
{
public static void main(String[] args)
{
A a = new B();
a.f(); // Is this an example of Polymorphism?
a.g(); // ...
}
}
输出为:
A.f();
B.g();
两者都是多态性的例子。
B
的行为类似于A
。(我之前错过了抽象void g()
声明。或者您是在我们回答时添加的??)
然而,在这种情况下,“an
A
”有点像橡皮。由于A
是抽象的
,因此不能有一个对象是A
,而不是某个其他类的实例。多态性–意味着给定类型的单个变量能够用于引用
并自动调用特定于变量引用的对象类型的方法。在一个
简而言之,多态性是一种自下而上的方法调用多态性的好处是很容易添加新的
不中断调用代码的派生对象类(如所示示例代码中的GetToArea()
下面)使用多态类或接口的。当您向对象发送消息时,即使您
不知道它是什么特定类型,正确的事情发生了,这就是所谓的多态性。所使用的过程
实现多态性的面向对象编程语言称为动态绑定
多态性似乎是Java中的一个普遍概念
多态性、继承和封装是面向对象语言(不仅仅是Java)的三大支柱 只有
a.g()
是多态性。由于您有一个类型为a
的引用,但它在objectB
中调用了方法,因此我宁愿说它们应该作为同一类的实例。派生成员应遵守javadoc中记录的总合同
我建议您阅读wiki文章,并了解动态绑定的概念
简言之:具体调用的方法取决于被引用对象的运行时类型而不是,取决于引用变量的类型。不,我没有编辑我的问题。顺便说一句,你如何看待Ean下面的答案?我不同意:-)。在这两种情况下,您都在对B实例调用方法,就好像它是a实例一样。这是两种情况下的多态性。