(OOP)在类中实现预编程函数



一个关于任何面向对象语言(Java, c#, Typescript等)的实验/理论问题

通常,在类中实现接口时,必须通过为该接口的每个函数编写代码来重写该类中该接口的所有函数。每个实现这个接口的类都必须有自己的这些函数的代码。假设我们有一个名为Test的接口,它有一个名为foo()的函数,我想在其中编写以下代码System.out.println("This is an interface function");
通常必须创建一个接口并声明该函数,然后在每个实现类中编写代码但是,如果有一些"理论"呢?让所有的函数都写在接口中,每个实现类都可以调用它,而不必重写。类似于以下内容(使用Java作为基础语言):

interface Test {
public foo() {
System.out.println("Test log.")
}
}
class Class1 implements Test {
constructor() {}
}
class Class2 implements Test {
constructor() {}
}
class Main {
public static void main() {
Class1 f1 = new Class1();
Class2 f2 = new Class2();
f1.foo();
f2.foo();
}
}

Java从Java 8开始就有了这个特性。接口可以有默认实现,类可以自由地覆盖它们,但不是必须这样做。

interface Test {
default void foo() {
System.out.println("Test log.");
}
}

最新更新