JavaRush /Java 博客 /Random-ZH /Java 中的接口
vinsler
第 35 级

Java 中的接口

已在 Random-ZH 群组中发布
如果我的目标不是向有特定要求的人解释一些难以理解的事情,那么我就是一个糟糕的讲故事者,所以我理解简单的事情,一方面我会在这里写下来。我不遵循 JavaRush 教学示例,先提出问题,然后告诉您如何做。我支持先讲述,然后询问,就像讲述,先展示,然后解释一样。
Java 中的接口 - 1
BS:动作==行为,将它们视为同义词,动作只是更正确地理解,它始终是活跃的东西,而行为可能不会表现出任何东西。

接口-接口

这是什么?接口列表示例(带有泛型):
public interface Store<T, ID> {
    void add(T t);
    void update(T t, ID i);
    void delete(ID i);
    T findOne(ID i);
    List<T> findAll();
}
通用 CRUD(来自 CRUD:创建、读取、更新、删除)接口。 不要惊慌,一切都很简单。这个接口意味着使用许多数据库是基于以下原则:您需要添加记录、更新记录、删除和查找所有记录。您将会遇到这个 100 次以上,并自己编写几乎相同的界面同样的次数。 它被指定为公共的,因为它必须由类来实现。由类来实现是什么意思?一切都很简单:它必须描述接口的所有方法。最简单的类实现示例:
void add (T t) {
	bookstore.add(t);
}
将用某个通用名称代替 T t。简而言之,这是变量的类型,这就是为什么它最常表示为 T = 类型。在我们的例子中,假设它可能是这样的:
void add (Book book) {
	bookstore.add(book);
}
当然,您可以替换实现中所需的任何变量来代替 Book book。为了理解,理论上你可以想象 T = Object,并且由于 Java 中的一切都是对象,因此你也可以在那里定义任何类/变量。唯一的麻烦会在稍后出现 - 如果类为零,则会出现异常,等等。用它自己的话说,它是一种特定的程序结构,通过将对象划分为某些行为部分来定义对象之间的关系。接口的目的是定义由类实现的功能。即方法签名的描述。接口内部有返回值和输入值的方法名称,仅此而已。好吧,您仍然可以在那里指定一些变量,但它们立即变成隐式 public static final,并且可以从程序的任何部分访问。该接口描述了动作,因此这些相同的动作也包含在其中,即 函数或方法。 为什么这是必要的?这简化了什么或者它提供了什么优势? 简化动作和行为的描述。我们说要做什么,但每个类自己实现如何做。节省大型项目的时间。接口是在我们知道需要执行某些任务但执行方式可能有所不同的情况下创建的。接口描述了动作的名称——这只是某种抽象的方向。虽然也可能存在没有方法和字段的接口,比如Cloneable、Remote等标记。让我们以每个人最喜欢的汽车为例。里面的界面会描述汽车可能的动作,转动方向盘或者移动方向,速度增益,剩余汽油等。也就是说,任何汽车都可以执行相同的操作。换句话说,我们陷入了退化的丛林,直到第一辆汽车的最低创造水平,并用我们自己的大脑弄清楚它是如何创造的以及它有什么。当然,我们只是抽象地描述这一点,并且仅用于操作。第一辆车有什么?有方向盘吗?它是,这意味着它正在转向某个地方,方向盘/运动的方向。有轮子吗?是的,这意味着我正在以某种速度行驶,速度发生了变化。这就是整个界面。但一般来说,接口是为了某些操作的某些实现而创建的。那些。我们编写的程序比您能想到的任何其他程序都更具体。因此,接口本身将包含更清晰、更具体的方法。当然,它们会尽可能抽象。接口可以作为类相互继承。
interface MyInterface extends NotMyinterface;
接口在类中实现。您可以根据需要实现任意多个接口。与继承不同,仅从一个继承。
class NewClass extends OldClass implements MyInterface, NotMyinterface;
那些。我们想出了一些动作,给它们命名,输入数据,返回数据,将所有这些写在接口中,然后创建一个类并将我们的接口添加到这个类中,即 在这个类中实现了我们的接口。此外,接口中描述的所有方法/函数都必须有一个实现。可以直接在接口本身中完成,方法是在方法之前添加 default 一词,然后像类一样直接在方法中编写实现。这在 Java 版本 8 中成为可能。也可以在实现该接口的类中完成。好吧,我们已经编写了接口,在类中实现了它,在类中推出了实现,我们可以运行它并测试它。您还可以在界面中阅读以下内容:
  • 静态方法。
  • 私有方法。(代码重复)
  • 变量/常量。
  • 嵌套接口。
但最好以后再做,而且脑子里装得太多也是有害的。有趣的问题,什么是沃尔沃?类还是接口?
line1: Volvo v = new VolvoV2();
line2: Volvo v = new VolvoV3();
除了接口之外,抽象类和类也值得继续。也许稍后,当我还有几个小时的空闲时间时。))) PS:伙计们,我要求在帖子下或PM中提出所有批评,我完全理解每个人都有它)))并且我总是有兴趣听到它,因为这是变得更好一点的原因再次继续前进。在此,非常感谢大家,祝编程顺利。)))
评论
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION