Add missing `override` specifiers for `MetricsBase<T>::Add` overrides.

Test: mmm art
Bug: 270391874
Change-Id: Ifef16a1548bd187aee34f1cf5d39bec0d8ffb50f
diff --git a/libartbase/base/metrics/metrics.h b/libartbase/base/metrics/metrics.h
index ee98c04..baaa7d8 100644
--- a/libartbase/base/metrics/metrics.h
+++ b/libartbase/base/metrics/metrics.h
@@ -301,7 +301,9 @@
   }
 
   void AddOne() { Add(1u); }
-  void Add(value_t value) { value_.fetch_add(value, std::memory_order::memory_order_relaxed); }
+  void Add(value_t value) override {
+    value_.fetch_add(value, std::memory_order::memory_order_relaxed);
+  }
 
   void Report(const std::vector<MetricsBackend*>& backends) const {
     for (MetricsBackend* backend : backends) {
@@ -342,7 +344,7 @@
   // 1. The metric eventually becomes consistent.
   // 2. For sufficiently large count_, a few data points which are off shouldn't
   // make a huge difference to the reporter.
-  void Add(value_t value) {
+  void Add(value_t value) override {
     MetricsCounter<datum_id, value_t>::Add(value);
     count_.fetch_add(1, std::memory_order::memory_order_release);
   }
@@ -423,7 +425,7 @@
                   == RoundUp(sizeof(intptr_t) + sizeof(value_t) * num_buckets_, sizeof(uint64_t)));
   }
 
-  void Add(int64_t value) {
+  void Add(int64_t value) override {
     const size_t i = FindBucketId(value);
     buckets_[i].fetch_add(1u, std::memory_order::memory_order_relaxed);
   }
@@ -480,7 +482,7 @@
                   RoundUp(sizeof(intptr_t) + sizeof(T), sizeof(uint64_t)));
   }
 
-  void Add(T value) {
+  void Add(T value) override {
     T current = value_.load(std::memory_order::memory_order_relaxed);
     T new_value;
     do {