gpt4 book ai didi

Java多态问题

转载 作者:行者123 更新时间:2023-11-29 09:36:12 24 4
gpt4 key购买 nike

对于 SCJP,大多数时候会询问如下问题以查找多态方法调用的有效示例。但是,究竟应该寻找什么来确定它是多态使用还是非多态使用?

 abstract class A {
abstract void a1();
void a2() { }

}
class B extends A {
void a1() { }
void a2() { }
}
class C extends B {
void c1() { }
}

和:

 A x = new B();

C y = new C();

A z = new C();

多态方法调用的四个有效示例是什么? (选择四项。)

A. x.a2();

B. z.a2();

C. z.c1();

D. z.a1();

E. y.c1();

F. x.a1();

答案:A、B、D、F

最佳答案

答案 C 无法编译(方法未在声明的类中定义)。答案 E 不是多态的(方法在声明的类中定义)。所有剩余的答案都使用了一种方法,该方法要么被实现(来自抽象定义),要么被覆盖,要么被子类化(所有这些都是多态行为)。

这是一个概述:

A x = new B();
C y = new C();
A z = new C();

A. x.a2(); // Method is overriden.
B. z.a2(); // Method is inherited.
C. z.c1(); // Won't compile. Method isn't defined in A.
D. z.a1(); // Method is implemented.
E. y.c1(); // Not polymorphic. Method is defined in declared class C.
F. x.a1(); // Method is implemented.

关于Java多态问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1960091/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com