sách gpt4 ai đã đi

java - 类在什么情况下实现接口(interface)?

In lại 作者:行者123 更新时间:2023-12-02 09:22:03 27 4
mua khóa gpt4 Nike

在使用这个声明时我的脑海中浮现出这样的一句话:

Queue q = new LinkedList();

据我了解Queue是一个接口(interface)并且 LinkedList类“实现”Queue 具有的所有方法( thêm vào remove peek 等)。

不过我看了LinkedList的源码(openjdk6)才发现该类没有显式实现Queue接口(interface)。

public class LinkedList
extends AbstractSequentialList
implements List, Deque, Cloneable, java.io.Serializable

然后我看了Deque的源码看到Deque接口(interface)扩展Queue界面。这是否意味着通过实现 Deque , LinkedList也在实现 Queue 及其所有祖先?

此外,如果我有一个实现了接口(interface)中所有方法的类,我可以在不使用“implements”关键字的情况下使用接口(interface)类型分配该类的对象吗?

1 Câu trả lời

是的,继承是可传递的,有接口(interface)和子类。 IE。如果 B Phần mở rộng MỘTC hoàn thành B,Nhưng C hoàn thành 一个.

不,您所描述的是 "duck typing" .

In computer programming with object-oriented programming languages, duck typing is a style of typing in which an object's methods and properties determine the valid semantics, rather than its inheritance from a particular class or implementation of an explicit interface.

这意味着,如果它像鸭子一样行走并且像鸭子一样嘎嘎叫,那么它一定是一只鸭子。但是,在 Java 中,不支持鸭子类型。类必须显式实现接口(interface)或扩展类才能分配给该接口(interface)类型或父类(super class)类型。

关于java - 类在什么情况下实现接口(interface)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25938519/

27 4 0
Bài viết được đề xuất: 用于云端数学计算的 API
Bài viết được đề xuất: c# - 如何防止卫星程序集被发布
Bài viết được đề xuất: tăng cường hỗ trợ MD5?
Bài viết được đề xuất: .net - X509Certificate2.Verify() 方法,根据吊销列表进行验证及其性能影响
行者123
Hồ sơ cá nhân

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá Didi Taxi miễn phí
Mã giảm giá Didi Taxi
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com