例では、クラスとインターフェイスの継承、およびインターフェイスを実装するクラスと抽象クラスについて説明します。

インターフェースを定義します。

public interface IService<T> {
    default boolean save(T entity) {
        return SqlHelper.retBool(this.getBaseMapper().insert(entity));
    }
}

A インターフェイスを継承する B インターフェイスを定義します。

public interface IBaseService<T> extends IService<T> {
    ResponseValue curd(HttpServletRequest req, T entity, int page, int size) throws Exception;
}

A インターフェイスを実装するために実装クラス C を定義します。

public class ServiceImpl<M extends BaseMapper<T>, T> implements IService<T> {}

実装クラス D を定義して、実装クラス C を継承し、インターフェイス B を実装します。

@Service
@Slf4j
public class BaseServiceImpl<M extends BaseMapper<T>, T> extends ServiceImpl<M, T> implements IBaseService<T> {
    @Override
    public ResponseValue curd(HttpServletRequest req, T model, int page, int size) throws Exception {}
}

上記のコードは、典型的な Java インターフェイスとクラス継承の実装ロジックです。以下に関連する概念について説明します。

接口(Interface):接口是一种抽象的规范,定义了一组方法的签名(方法名、参数列表和返回类型),而不包含具体的实现代码。接口中的方法默认是公共的、抽象的,不需要提供具体的实现。接口可以包含常量和默认方法的定义。在Java中,接口使用interface关键字声明。

类(Class):类是对对象的封装,描述了对象的属性和行为。它可以实例化为具体的对象,并提供对应的方法来操作对象。类可以继承其他类或实现接口。在Java中,类使用class关键字声明。

继承(Inheritance):继承是一种面向对象的特性,它允许一个类继承另一个类的属性和方法。被继承的类称为父类或超类(superclass),继承的类称为子类或派生类(subclass)。子类继承了父类的属性和方法,并可以添加新的属性和方法,或者修改父类的方法。通过继承,子类可以复用父类的代码并扩展功能。

接口继承(Interface Inheritance):接口可以通过extends关键字继承其他接口。接口继承的概念类似于类的继承,子接口可以继承父接口的方法签名,并可以添加新的方法签名。一个接口可以继承多个接口,形成接口的继承链。

类实现接口(Implementing Interfaces):类可以通过implements关键字实现一个或多个接口。实现接口意味着类要遵循接口定义的方法签名,并提供具体的方法实现。一个类可以同时实现多个接口,通过逗号分隔。

指定されたコードでは、IBaseService は IService インターフェイスから継承されたインターフェイスです。 IBaseService インターフェイスは、追加、削除、変更、クエリ操作などのいくつかの一般的なサービス メソッドを定義します。 IBaseService は特定のメソッドの実装を提供せず、メソッドのシグネチャを定義するだけです。

BaseServiceImpl は、ServiceImpl<M, T> クラスを継承し、IBaseService インターフェイスを実装するクラスです。M には、BaseMapper インターフェイスから継承する任意の Mapper インターフェイス タイプを指定できます。 BaseServiceImpl クラスは、IBaseService インターフェイスで定義されたメソッドの特定の実装を提供します。 ServiceImpl クラスを継承することにより、BaseServiceImpl クラスはいくつかの共通サービス メソッドのデフォルト実装を取得します。

この継承実装メソッドにより、BaseServiceImpl クラスをサービス クラスの基本クラスとして使用して、共通のサービス メソッドの実装を提供できます。また、特定のビジネス サービス クラスは BaseServiceImpl を継承し、独自のニーズに応じて拡張および書き換えることができます。これにより、コードの再利用と統一されたサービス インターフェイス定義が可能になります。

一般に、実装クラスがインターフェイスを実装する場合、このインターフェイスのすべてのメソッドを実装する必要があります。実装クラスは親クラスを継承します。親クラスがインターフェイスのすべてのメソッドを実装した後は、現在の実装クラスはそれを実装する必要はありません。

抽象クラスとインターフェイスの説明は次のとおりです。
抽象クラス

抽象类 是一种不能被实例化的类,它可以包含抽象方法和普通方法。
抽象方法是一种没有实现体的方法,只有方法签名,用 abstract 关键字标识。
子类继承抽象类后,必须实现其中的抽象方法,除非子类也声明为抽象类。

インターフェース

接口 定义了一组方法的集合,但没有实现这些方法。
接口中的方法默认都是抽象方法,不需要使用 abstract 关键字标识。
类可以实现多个接口,从而拥有这些接口定义的方法。

継承する

继承 允许一个类(子类)派生出另一个类(父类)的属性和行为。
子类继承父类的属性和方法,可以重写父类的方法来实现特定的行为。

成し遂げる

在面向对象编程中,实现 是指一个类遵循了某个接口的规范,实现了该接口中定义的所有方法。
通过实现接口,类表明其将提供接口中定义的所有方法的具体实现。

メソッドのオーバーライド

当子类继承自父类或实现了接口后,如果需要改变方法的行为,就可以在子类中重写(override)父类的方法或接口中定义的方法。
重写方法必须具有相同的方法名称、参数列表和返回类型。在子类中可以重新定义方法的实现。
使用 @Override 注解可以帮助编译器检查是否正确重写了父类的方法或实现了接口中定义的方法。

一般に、抽象クラス、抽象メソッド、およびインターフェイスは、仕様と制約を定義するために使用されるツールです。サブクラスが抽象クラスを継承する場合、またはインターフェイスを実装する場合、特定の動作を実現するには、サブクラス内の抽象メソッドをオーバーライドする必要があります。

おすすめ

転載: blog.csdn.net/weixin_44060488/article/details/134994686