code: @Override  // override with covariant return type
      public ThaiBuddhistDate date(TemporalAccessor temporal) {
          if (temporal instanceof ThaiBuddhistDate) {
              return (ThaiBuddhistDate) temporal;
          }
          return new ThaiBuddhistDate(LocalDate.from(temporal));
      }
docs: -----------------------------------------------------------------------