(OOP) 在 class 中实现预编程函数
(OOP) Implementing a pre-programmed function in a class
关于任何 OOP 语言(Java、C#、Typescript 等)的 experimental/theoretical 问题
通常,在 class 中实现接口时,必须通过为该接口的每个函数编写代码来覆盖 class 中该接口的所有函数。每个实现此接口的 class 都必须有自己的代码来实现这些功能。假设我们有一个名为 Test
的接口,它有一个名为 foo()
的函数,其中我想要以下代码 System.out.println("This is an interface function");
。
通常必须创建一个接口并声明该函数然后在每个实现中编写代码 class
但是,如果有一些“理论上”的方法可以将所有函数写入接口,并且每个实现 class 都可以直接调用它而不必覆盖。类似于以下内容(使用 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 开始就有这个特性。接口可以有默认实现,其中 class 可以自由覆盖它们,但不是必须这样做。
interface Test {
default void foo() {
System.out.println("Test log.");
}
}
关于任何 OOP 语言(Java、C#、Typescript 等)的 experimental/theoretical 问题
通常,在 class 中实现接口时,必须通过为该接口的每个函数编写代码来覆盖 class 中该接口的所有函数。每个实现此接口的 class 都必须有自己的代码来实现这些功能。假设我们有一个名为 Test
的接口,它有一个名为 foo()
的函数,其中我想要以下代码 System.out.println("This is an interface function");
。
通常必须创建一个接口并声明该函数然后在每个实现中编写代码 class
但是,如果有一些“理论上”的方法可以将所有函数写入接口,并且每个实现 class 都可以直接调用它而不必覆盖。类似于以下内容(使用 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 开始就有这个特性。接口可以有默认实现,其中 class 可以自由覆盖它们,但不是必须这样做。
interface Test {
default void foo() {
System.out.println("Test log.");
}
}