shill: Add C++11 override specifier to destructors of derived classes.

BUG=None
TEST=`USE=wimax FEATURES=test emerge-$BOARD platform2`

Change-Id: I88d4e29165869b26924cccb94ac940dc8961c312
Reviewed-on: https://chromium-review.googlesource.com/212267
Reviewed-by: Alex Vakulenko <avakulenko@chromium.org>
Commit-Queue: Ben Chan <benchan@chromium.org>
Tested-by: Ben Chan <benchan@chromium.org>
diff --git a/active_passive_out_of_credits_detector.h b/active_passive_out_of_credits_detector.h
index 5a99e24..e62c3f8 100644
--- a/active_passive_out_of_credits_detector.h
+++ b/active_passive_out_of_credits_detector.h
@@ -22,7 +22,7 @@
                                     Manager *manager,
                                     Metrics *metrics,
                                     CellularService *service);
-  virtual ~ActivePassiveOutOfCreditsDetector();
+  ~ActivePassiveOutOfCreditsDetector() override;
 
   void ResetDetector() override;
   bool IsDetecting() const override;
diff --git a/cellular.h b/cellular.h
index ead1668..6de26bf 100644
--- a/cellular.h
+++ b/cellular.h
@@ -115,7 +115,7 @@
            const std::string &service,
            const std::string &path,
            ProxyFactory *proxy_factory);
-  virtual ~Cellular();
+  ~Cellular() override;
 
   // Load configuration for the device from |storage|.
   virtual bool Load(StoreInterface *storage);
@@ -412,7 +412,7 @@
     // |cellular| must have lifespan longer than this object. In practice this
     // is enforced because |cellular| owns this object.
     explicit MobileOperatorInfoObserver(Cellular *cellular);
-    virtual ~MobileOperatorInfoObserver();
+    ~MobileOperatorInfoObserver() override;
 
     void set_capability(CellularCapability *capability) {
       capability_ = capability;
diff --git a/cellular_capability_cdma.h b/cellular_capability_cdma.h
index 35cdc2f..1e92130 100644
--- a/cellular_capability_cdma.h
+++ b/cellular_capability_cdma.h
@@ -27,7 +27,7 @@
   CellularCapabilityCDMA(Cellular *cellular,
                          ProxyFactory *proxy_factory,
                          ModemInfo *modem_info);
-  virtual ~CellularCapabilityCDMA();
+  ~CellularCapabilityCDMA() override;
 
   // Inherited from CellularCapability.
   std::string GetTypeString() const override;
diff --git a/cellular_capability_classic.h b/cellular_capability_classic.h
index ca6f139..431c8e4 100644
--- a/cellular_capability_classic.h
+++ b/cellular_capability_classic.h
@@ -58,7 +58,7 @@
   CellularCapabilityClassic(Cellular *cellular,
                             ProxyFactory *proxy_factory,
                             ModemInfo *modem_info);
-  virtual ~CellularCapabilityClassic();
+  ~CellularCapabilityClassic() override;
 
   // Inherited from CellularCapability.
   void OnDBusPropertiesChanged(
diff --git a/cellular_capability_gsm.h b/cellular_capability_gsm.h
index 15c6311..56d36fa 100644
--- a/cellular_capability_gsm.h
+++ b/cellular_capability_gsm.h
@@ -32,7 +32,7 @@
   CellularCapabilityGSM(Cellular *cellular,
                         ProxyFactory *proxy_factory,
                         ModemInfo *modem_info);
-  virtual ~CellularCapabilityGSM();
+  ~CellularCapabilityGSM() override;
 
   // Inherited from CellularCapability.
   std::string GetTypeString() const override;
diff --git a/cellular_capability_universal.h b/cellular_capability_universal.h
index 38f51f1..c218cf6 100644
--- a/cellular_capability_universal.h
+++ b/cellular_capability_universal.h
@@ -57,7 +57,7 @@
   CellularCapabilityUniversal(Cellular *cellular,
                               ProxyFactory *proxy_factory,
                               ModemInfo *modem_info);
-  virtual ~CellularCapabilityUniversal();
+  ~CellularCapabilityUniversal() override;
 
   // Inherited from CellularCapability.
   std::string GetTypeString() const override;
diff --git a/cellular_capability_universal_cdma.h b/cellular_capability_universal_cdma.h
index 4a98e11..a79d7b7 100644
--- a/cellular_capability_universal_cdma.h
+++ b/cellular_capability_universal_cdma.h
@@ -23,7 +23,7 @@
   CellularCapabilityUniversalCDMA(Cellular *cellular,
                                   ProxyFactory *proxy_factory,
                                   ModemInfo *modem_info);
-  virtual ~CellularCapabilityUniversalCDMA();
+  ~CellularCapabilityUniversalCDMA() override;
 
   // Returns true if the service is activated.
   bool IsActivated() const;
diff --git a/cellular_service.h b/cellular_service.h
index 339c7ae..6b50077 100644
--- a/cellular_service.h
+++ b/cellular_service.h
@@ -37,7 +37,7 @@
 
   CellularService(ModemInfo *modem_info,
                   const CellularRefPtr &device);
-  virtual ~CellularService();
+  ~CellularService() override;
 
   // Inherited from Service.
   virtual void AutoConnect();
diff --git a/dbus_adaptor.h b/dbus_adaptor.h
index 78c15df..4a43082 100644
--- a/dbus_adaptor.h
+++ b/dbus_adaptor.h
@@ -35,7 +35,7 @@
   static const char kNullPath[];
 
   DBusAdaptor(DBus::Connection* conn, const std::string &object_path);
-  virtual ~DBusAdaptor();
+  ~DBusAdaptor() override;
 
   // Set the property with |name| through |store|. Returns true if and
   // only if the property was changed. Updates |error| if a) an error
diff --git a/dbus_control.h b/dbus_control.h
index f6938e0..2632505 100644
--- a/dbus_control.h
+++ b/dbus_control.h
@@ -16,7 +16,7 @@
 class DBusControl : public ControlInterface {
  public:
   DBusControl();
-  virtual ~DBusControl();
+  ~DBusControl() override;
 
   virtual DeviceAdaptorInterface *CreateDeviceAdaptor(Device *device);
   virtual IPConfigAdaptorInterface *CreateIPConfigAdaptor(IPConfig *ipconfig);
diff --git a/dbus_objectmanager_proxy.h b/dbus_objectmanager_proxy.h
index d62fb80..346e320 100644
--- a/dbus_objectmanager_proxy.h
+++ b/dbus_objectmanager_proxy.h
@@ -21,7 +21,7 @@
   DBusObjectManagerProxy(DBus::Connection *connection,
                          const std::string &path,
                          const std::string &service);
-  virtual ~DBusObjectManagerProxy();
+  ~DBusObjectManagerProxy() override;
 
   // Inherited methods from DBusObjectManagerProxyInterface.
   virtual void GetManagedObjects(Error *error,
@@ -40,7 +40,7 @@
     Proxy(DBus::Connection *connection,
           const std::string &path,
           const std::string &service);
-    virtual ~Proxy();
+    ~Proxy() override;
 
     virtual void set_interfaces_added_callback(
         const InterfacesAddedSignalCallback &callback);
diff --git a/dbus_properties_proxy.h b/dbus_properties_proxy.h
index 4502c95..b64d136 100644
--- a/dbus_properties_proxy.h
+++ b/dbus_properties_proxy.h
@@ -20,7 +20,7 @@
   DBusPropertiesProxy(DBus::Connection *connection,
                       const std::string &path,
                       const std::string &service);
-  virtual ~DBusPropertiesProxy();
+  ~DBusPropertiesProxy() override;
 
   // Inherited from DBusPropertiesProxyInterface.
   virtual DBusPropertiesMap GetAll(const std::string &interface_name);
@@ -39,7 +39,7 @@
     Proxy(DBus::Connection *connection,
           const std::string &path,
           const std::string &service);
-    virtual ~Proxy();
+    ~Proxy() override;
 
     virtual void set_properties_changed_callback(
         const PropertiesChangedCallback &callback);
diff --git a/dbus_service_proxy.h b/dbus_service_proxy.h
index 4a20cfc..cf05551 100644
--- a/dbus_service_proxy.h
+++ b/dbus_service_proxy.h
@@ -15,7 +15,7 @@
 class DBusServiceProxy : public DBusServiceProxyInterface {
  public:
   explicit DBusServiceProxy(DBus::Connection *connection);
-  virtual ~DBusServiceProxy();
+  ~DBusServiceProxy() override;
 
   // Inherited from DBusServiceProxyInterface.
   virtual void GetNameOwner(const std::string &name,
@@ -30,7 +30,7 @@
                 public DBus::ObjectProxy {
    public:
     explicit Proxy(DBus::Connection *connection);
-    virtual ~Proxy();
+    ~Proxy() override;
 
     void set_name_owner_changed_callback(
         const NameOwnerChangedCallback &callback);
diff --git a/default_profile.h b/default_profile.h
index afae425..fa84327 100644
--- a/default_profile.h
+++ b/default_profile.h
@@ -34,7 +34,7 @@
                  const base::FilePath &storage_path,
                  const std::string &profile_id,
                  const Manager::Properties &manager_props);
-  virtual ~DefaultProfile();
+  ~DefaultProfile() override;
 
   // Loads global configuration into manager properties.  This should
   // only be called by the Manager.
diff --git a/device_dbus_adaptor.h b/device_dbus_adaptor.h
index 646a76e..7aa66bc 100644
--- a/device_dbus_adaptor.h
+++ b/device_dbus_adaptor.h
@@ -30,7 +30,7 @@
   static const char kPath[];
 
   DeviceDBusAdaptor(DBus::Connection* conn, Device *device);
-  virtual ~DeviceDBusAdaptor();
+  ~DeviceDBusAdaptor() override;
 
   // Implementation of DeviceAdaptorInterface.
   virtual const std::string &GetRpcIdentifier();
diff --git a/dhcp_config.h b/dhcp_config.h
index 1931352..eb4fa5d 100644
--- a/dhcp_config.h
+++ b/dhcp_config.h
@@ -54,7 +54,7 @@
              bool arp_gateway,
              GLib *glib,
              Metrics *metrics);
-  virtual ~DHCPConfig();
+  ~DHCPConfig() override;
 
   // Inherited from IPConfig.
   virtual bool RequestIP();
diff --git a/dhcpcd_proxy.cc b/dhcpcd_proxy.cc
index 5cb3989..cc56ad1 100644
--- a/dhcpcd_proxy.cc
+++ b/dhcpcd_proxy.cc
@@ -34,6 +34,8 @@
   connect_signal(DHCPCDListener::Proxy, StatusChanged, StatusChangedSignal);
 }
 
+DHCPCDListener::Proxy::~Proxy() {}
+
 void DHCPCDListener::Proxy::EventSignal(const DBus::SignalMessage &signal) {
   SLOG(DBus, 2) << __func__;
   DBus::MessageIter ri = signal.reader();
diff --git a/dhcpcd_proxy.h b/dhcpcd_proxy.h
index c30622d..23137bd 100644
--- a/dhcpcd_proxy.h
+++ b/dhcpcd_proxy.h
@@ -29,6 +29,7 @@
                 public DBus::ObjectProxy {
    public:
     Proxy(DBus::Connection *connection, DHCPProvider *provider);
+    ~Proxy() override;
 
    private:
     void EventSignal(const DBus::SignalMessage &signal);
@@ -62,7 +63,7 @@
                 public DBus::ObjectProxy {
    public:
     Proxy(DBus::Connection *connection, const std::string &service);
-    virtual ~Proxy();
+    ~Proxy() override;
 
    private:
     // Signal callbacks inherited from dhcpcd_proxy. Note that these callbacks
diff --git a/ephemeral_profile.h b/ephemeral_profile.h
index 179d989..362f99e 100644
--- a/ephemeral_profile.h
+++ b/ephemeral_profile.h
@@ -28,7 +28,7 @@
   EphemeralProfile(ControlInterface *control_interface,
                    Metrics *metrics,
                    Manager *manager);
-  virtual ~EphemeralProfile();
+  ~EphemeralProfile() override;
 
   std::string GetFriendlyName() override;
   bool AdoptService(const ServiceRefPtr &service) override;
diff --git a/ethernet.h b/ethernet.h
index eb327ab..d13306c 100644
--- a/ethernet.h
+++ b/ethernet.h
@@ -39,7 +39,7 @@
            const std::string& link_name,
            const std::string &address,
            int interface_index);
-  virtual ~Ethernet();
+  ~Ethernet() override;
 
   virtual void Start(Error *error, const EnabledStateChangedCallback &callback);
   virtual void Stop(Error *error, const EnabledStateChangedCallback &callback);
diff --git a/ethernet_eap_provider.h b/ethernet_eap_provider.h
index bc5cbb4..1714ace 100644
--- a/ethernet_eap_provider.h
+++ b/ethernet_eap_provider.h
@@ -30,7 +30,7 @@
                       EventDispatcher *dispatcher,
                       Metrics *metrics,
                       Manager *manager);
-  virtual ~EthernetEapProvider();
+  ~EthernetEapProvider() override;
 
   // Called by Manager as a part of the Provider interface.
   void CreateServicesFromProfile(const ProfileRefPtr &profile) override;
diff --git a/ethernet_eap_service.h b/ethernet_eap_service.h
index 7e2d7f0..0c62b3c 100644
--- a/ethernet_eap_service.h
+++ b/ethernet_eap_service.h
@@ -22,7 +22,7 @@
                      EventDispatcher *dispatcher,
                      Metrics *metrics,
                      Manager *manager);
-  virtual ~EthernetEapService();
+  ~EthernetEapService() override;
 
   // Inherited from Service.
   virtual std::string GetDeviceRpcId(Error *error) const;
diff --git a/external_task.h b/external_task.h
index 9214aff..fffd0b3 100644
--- a/external_task.h
+++ b/external_task.h
@@ -33,7 +33,7 @@
                GLib *glib,
                const base::WeakPtr<RPCTaskDelegate> &task_delegate,
                const base::Callback<void(pid_t, int)> &death_callback);
-  virtual ~ExternalTask();  // But consider DestroyLater...
+  ~ExternalTask() override;  // But consider DestroyLater...
 
   // Schedule later deletion of the ExternalTask. Useful when in the
   // middle of an ExternalTask callback. Note that the caller _must_
diff --git a/generic_netlink_message.h b/generic_netlink_message.h
index 8daff4d..b2c2f2d 100644
--- a/generic_netlink_message.h
+++ b/generic_netlink_message.h
@@ -62,7 +62,7 @@
         attributes_(new AttributeList),
         command_(command),
         command_string_(command_string) {}
-  virtual ~GenericNetlinkMessage() {}
+  ~GenericNetlinkMessage() override {}
 
   virtual ByteString Encode(uint32_t sequence_number);
 
diff --git a/ipconfig_dbus_adaptor.h b/ipconfig_dbus_adaptor.h
index 7b7208c..944c576 100644
--- a/ipconfig_dbus_adaptor.h
+++ b/ipconfig_dbus_adaptor.h
@@ -33,7 +33,7 @@
   static const char kPath[];
 
   IPConfigDBusAdaptor(DBus::Connection *conn, IPConfig *ipconfig);
-  virtual ~IPConfigDBusAdaptor();
+  ~IPConfigDBusAdaptor() override;
 
   // Implementation of IPConfigAdaptorInterface.
   virtual const std::string &GetRpcIdentifier() { return path(); }
diff --git a/key_file_store.h b/key_file_store.h
index 9b2c6aa..6d35ecf 100644
--- a/key_file_store.h
+++ b/key_file_store.h
@@ -24,7 +24,7 @@
 class KeyFileStore : public StoreInterface {
  public:
   explicit KeyFileStore(GLib *glib);
-  virtual ~KeyFileStore();
+  ~KeyFileStore() override;
 
   void set_path(const base::FilePath &path) { path_ = path; }
   const base::FilePath &path() const { return path_; }
diff --git a/l2tp_ipsec_driver.h b/l2tp_ipsec_driver.h
index 2e9d7d2..2052aa6 100644
--- a/l2tp_ipsec_driver.h
+++ b/l2tp_ipsec_driver.h
@@ -39,7 +39,7 @@
                   Manager *manager,
                   DeviceInfo *device_info,
                   GLib *glib);
-  virtual ~L2TPIPSecDriver();
+  ~L2TPIPSecDriver() override;
 
  protected:
   // Inherited from VPNDriver.
diff --git a/manager_dbus_adaptor.h b/manager_dbus_adaptor.h
index 55fdeaf..45300a2 100644
--- a/manager_dbus_adaptor.h
+++ b/manager_dbus_adaptor.h
@@ -33,7 +33,7 @@
   static const char kPath[];
 
   ManagerDBusAdaptor(DBus::Connection *conn, Manager *manager);
-  virtual ~ManagerDBusAdaptor();
+  ~ManagerDBusAdaptor() override;
 
   // Implementation of ManagerAdaptorInterface.
   virtual const std::string &GetRpcIdentifier() { return path(); }
diff --git a/mm1_bearer_proxy.h b/mm1_bearer_proxy.h
index 2424407..74f35fd 100644
--- a/mm1_bearer_proxy.h
+++ b/mm1_bearer_proxy.h
@@ -23,7 +23,7 @@
               const std::string &path,
               const std::string &service);
 
-  virtual ~BearerProxy();
+  ~BearerProxy() override;
 
   // Inherited methods from BearerProxyInterface
   virtual void Connect(Error *error,
@@ -40,7 +40,7 @@
     Proxy(DBus::Connection *connection,
           const std::string &path,
           const std::string &service);
-    virtual ~Proxy();
+    ~Proxy() override;
 
    private:
     // Method callbacks inherited from
diff --git a/mm1_modem_location_proxy.h b/mm1_modem_location_proxy.h
index 4da5f69..391ca35 100644
--- a/mm1_modem_location_proxy.h
+++ b/mm1_modem_location_proxy.h
@@ -23,7 +23,7 @@
                      const std::string &path,
                      const std::string &service);
 
-  virtual ~ModemLocationProxy();
+  ~ModemLocationProxy() override;
 
   // Inherited methods from ModemLocationProxyInterface.
   virtual void Setup(uint32_t sources,
@@ -43,7 +43,7 @@
     Proxy(DBus::Connection *connection,
           const std::string &path,
           const std::string &service);
-    virtual ~Proxy();
+    ~Proxy() override;
 
    private:
     // Method callbacks inherited from
diff --git a/mm1_modem_modem3gpp_proxy.h b/mm1_modem_modem3gpp_proxy.h
index b974076..9cf3bcc 100644
--- a/mm1_modem_modem3gpp_proxy.h
+++ b/mm1_modem_modem3gpp_proxy.h
@@ -23,7 +23,7 @@
   ModemModem3gppProxy(DBus::Connection *connection,
                       const std::string &path,
                       const std::string &service);
-  virtual ~ModemModem3gppProxy();
+  ~ModemModem3gppProxy() override;
   // Inherited methods from ModemModem3gppProxyInterface.
   virtual void Register(const std::string &operator_id,
                         Error *error,
@@ -40,7 +40,7 @@
     Proxy(DBus::Connection *connection,
           const std::string &path,
           const std::string &service);
-    virtual ~Proxy();
+    ~Proxy() override;
 
    private:
     // Method callbacks inherited from
diff --git a/mm1_modem_modemcdma_proxy.h b/mm1_modem_modemcdma_proxy.h
index 74cee97..bf58502 100644
--- a/mm1_modem_modemcdma_proxy.h
+++ b/mm1_modem_modemcdma_proxy.h
@@ -22,7 +22,7 @@
   ModemModemCdmaProxy(DBus::Connection *connection,
                       const std::string &path,
                       const std::string &service);
-  virtual ~ModemModemCdmaProxy();
+  ~ModemModemCdmaProxy() override;
 
   // Inherited methods from ModemModemCdmaProxyInterface.
   virtual void Activate(const std::string &carrier,
@@ -45,7 +45,7 @@
     Proxy(DBus::Connection *connection,
           const std::string &path,
           const std::string &service);
-    virtual ~Proxy();
+    ~Proxy() override;
 
     virtual void set_activation_state_callback(
         const ActivationStateSignalCallback &callback);
diff --git a/mm1_modem_proxy.h b/mm1_modem_proxy.h
index 09c9830..16c57ec 100644
--- a/mm1_modem_proxy.h
+++ b/mm1_modem_proxy.h
@@ -23,7 +23,7 @@
   ModemProxy(DBus::Connection *connection,
              const std::string &path,
              const std::string &service);
-  virtual ~ModemProxy();
+  ~ModemProxy() override;
 
   // Inherited methods from ModemProxyInterface.
   virtual void Enable(bool enable,
@@ -77,7 +77,7 @@
     Proxy(DBus::Connection *connection,
           const std::string &path,
           const std::string &service);
-    virtual ~Proxy();
+    ~Proxy() override;
 
     void set_state_changed_callback(
         const ModemStateChangedSignalCallback &callback);
diff --git a/mm1_modem_simple_proxy.h b/mm1_modem_simple_proxy.h
index fa70ee1..774d36b 100644
--- a/mm1_modem_simple_proxy.h
+++ b/mm1_modem_simple_proxy.h
@@ -22,7 +22,7 @@
   ModemSimpleProxy(DBus::Connection *connection,
                    const std::string &path,
                    const std::string &service);
-  virtual ~ModemSimpleProxy();
+  ~ModemSimpleProxy() override;
 
   // Inherited methods from SimpleProxyInterface.
   virtual void Connect(
@@ -45,7 +45,7 @@
     Proxy(DBus::Connection *connection,
           const std::string &path,
           const std::string &service);
-    virtual ~Proxy();
+    ~Proxy() override;
 
    private:
     // Method callbacks inherited from
diff --git a/mm1_modem_time_proxy.h b/mm1_modem_time_proxy.h
index c73be29..3fa8458 100644
--- a/mm1_modem_time_proxy.h
+++ b/mm1_modem_time_proxy.h
@@ -22,7 +22,7 @@
   ModemTimeProxy(DBus::Connection *connection,
                  const std::string &path,
                  const std::string &service);
-  virtual ~ModemTimeProxy();
+  ~ModemTimeProxy() override;
 
   // Inherited methods from ModemTimeProxyInterface.
   virtual void GetNetworkTime(Error *error,
@@ -39,7 +39,7 @@
     Proxy(DBus::Connection *connection,
           const std::string &path,
           const std::string &service);
-    virtual ~Proxy();
+    ~Proxy() override;
 
     void set_network_time_changed_callback(
         const NetworkTimeChangedSignalCallback &callback);
diff --git a/mm1_sim_proxy.h b/mm1_sim_proxy.h
index 956168e..3803d44 100644
--- a/mm1_sim_proxy.h
+++ b/mm1_sim_proxy.h
@@ -22,7 +22,7 @@
   SimProxy(DBus::Connection *connection,
            const std::string &path,
            const std::string &service);
-  virtual ~SimProxy();
+  ~SimProxy() override;
 
   // Inherited methods from SimProxyInterface.
   virtual void SendPin(const std::string &pin,
@@ -52,7 +52,7 @@
     Proxy(DBus::Connection *connection,
           const std::string &path,
           const std::string &service);
-    virtual ~Proxy();
+    ~Proxy() override;
 
    private:
     // Method callbacks inherited from
diff --git a/mobile_operator_info.h b/mobile_operator_info.h
index 60e0432..af27ef5 100644
--- a/mobile_operator_info.h
+++ b/mobile_operator_info.h
@@ -54,6 +54,8 @@
  public:
   class Observer {
    public:
+    virtual ~Observer() {}
+
     // This event fires when
     //   - A mobile [virtual] network operator
     //     - is first determined.
diff --git a/mock_adaptors.h b/mock_adaptors.h
index 90af145..f70ae81 100644
--- a/mock_adaptors.h
+++ b/mock_adaptors.h
@@ -22,7 +22,7 @@
   static const char kRpcConnId[];
 
   DeviceMockAdaptor();
-  virtual ~DeviceMockAdaptor();
+  ~DeviceMockAdaptor() override;
   virtual const std::string &GetRpcIdentifier();
   virtual const std::string &GetRpcConnectionIdentifier();
 
@@ -56,7 +56,7 @@
   static const char kRpcId[];
 
   IPConfigMockAdaptor();
-  virtual ~IPConfigMockAdaptor();
+  ~IPConfigMockAdaptor() override;
   virtual const std::string &GetRpcIdentifier();
 
   MOCK_METHOD2(EmitBoolChanged, void(const std::string&, bool));
@@ -76,7 +76,7 @@
   static const char kRpcId[];
 
   ManagerMockAdaptor();
-  virtual ~ManagerMockAdaptor();
+  ~ManagerMockAdaptor() override;
   virtual const std::string &GetRpcIdentifier();
 
   MOCK_METHOD0(UpdateRunning, void(void));
@@ -103,7 +103,7 @@
   static const char kRpcId[];
 
   ProfileMockAdaptor();
-  virtual ~ProfileMockAdaptor();
+  ~ProfileMockAdaptor() override;
   virtual const std::string &GetRpcIdentifier();
 
   MOCK_METHOD2(EmitBoolChanged, void(const std::string&, bool));
@@ -123,7 +123,7 @@
   static const char kRpcConnId[];
 
   RPCTaskMockAdaptor();
-  virtual ~RPCTaskMockAdaptor();
+  ~RPCTaskMockAdaptor() override;
 
   virtual const std::string &GetRpcIdentifier();
   virtual const std::string &GetRpcInterfaceIdentifier();
@@ -141,7 +141,7 @@
   static const char kRpcId[];
 
   ServiceMockAdaptor();
-  virtual ~ServiceMockAdaptor();
+  ~ServiceMockAdaptor() override;
   virtual const std::string &GetRpcIdentifier();
 
   MOCK_METHOD0(UpdateConnected, void());
diff --git a/mock_ares.h b/mock_ares.h
index 0a89de2..95dae94 100644
--- a/mock_ares.h
+++ b/mock_ares.h
@@ -15,7 +15,7 @@
 class MockAres : public Ares {
  public:
   MockAres();
-  virtual ~MockAres();
+  ~MockAres() override;
 
   MOCK_METHOD1(Destroy, void(ares_channel channel));
   MOCK_METHOD5(GetHostByName, void(ares_channel channel,
diff --git a/mock_arp_client.h b/mock_arp_client.h
index 7c59a90..c2ff24b 100644
--- a/mock_arp_client.h
+++ b/mock_arp_client.h
@@ -17,7 +17,7 @@
 class MockArpClient : public ArpClient {
  public:
   MockArpClient();
-  virtual ~MockArpClient();
+  ~MockArpClient() override;
 
   MOCK_METHOD0(Start, bool());
   MOCK_METHOD0(Stop, void());
diff --git a/mock_async_connection.h b/mock_async_connection.h
index 7f714c1..17e55e3 100644
--- a/mock_async_connection.h
+++ b/mock_async_connection.h
@@ -15,7 +15,7 @@
 class MockAsyncConnection : public AsyncConnection {
  public:
   MockAsyncConnection();
-  virtual ~MockAsyncConnection();
+  ~MockAsyncConnection() override;
 
   MOCK_METHOD2(Start, bool(const IPAddress &address, int port));
   MOCK_METHOD0(Stop, void());
diff --git a/mock_cellular.h b/mock_cellular.h
index e6430be..4b9e1b7 100644
--- a/mock_cellular.h
+++ b/mock_cellular.h
@@ -25,7 +25,7 @@
                const std::string &service,
                const std::string &path,
                ProxyFactory *proxy_factory);
-  virtual ~MockCellular();
+  ~MockCellular() override;
 
   MOCK_METHOD1(Connect, void(Error *error));
   MOCK_METHOD2(Disconnect, void(Error *error, const char *reason));
diff --git a/mock_cellular_service.h b/mock_cellular_service.h
index 67a7fb6..913a3d3 100644
--- a/mock_cellular_service.h
+++ b/mock_cellular_service.h
@@ -17,7 +17,7 @@
  public:
   MockCellularService(ModemInfo *modem_info,
                       const CellularRefPtr &device);
-  virtual ~MockCellularService();
+  ~MockCellularService() override;
 
   MOCK_METHOD0(AutoConnect, void());
   MOCK_METHOD1(SetLastGoodApn, void(const Stringmap &apn_info));
diff --git a/mock_certificate_file.h b/mock_certificate_file.h
index 5c7c229..c994454 100644
--- a/mock_certificate_file.h
+++ b/mock_certificate_file.h
@@ -17,7 +17,7 @@
 class MockCertificateFile : public CertificateFile {
  public:
   MockCertificateFile();
-  virtual ~MockCertificateFile();
+  ~MockCertificateFile() override;
 
   MOCK_METHOD1(CreatePEMFromString,
                base::FilePath(const std::string &pem_contents));
diff --git a/mock_connection.h b/mock_connection.h
index 2c5b8d0..c476f0e 100644
--- a/mock_connection.h
+++ b/mock_connection.h
@@ -18,7 +18,7 @@
 class MockConnection : public Connection {
  public:
   explicit MockConnection(const DeviceInfo *device_info);
-  virtual ~MockConnection();
+  ~MockConnection() override;
 
   MOCK_METHOD1(UpdateFromIPConfig, void(const IPConfigRefPtr &config));
   MOCK_CONST_METHOD0(GetLowerConnection, ConnectionRefPtr());
diff --git a/mock_connection_health_checker.h b/mock_connection_health_checker.h
index 7f43f73..6c8a70c 100644
--- a/mock_connection_health_checker.h
+++ b/mock_connection_health_checker.h
@@ -20,7 +20,7 @@
       EventDispatcher *dispatcher,
       IPAddressStore *remote_ips,
       const base::Callback<void(Result)> &result_callback);
-  virtual ~MockConnectionHealthChecker();
+  ~MockConnectionHealthChecker() override;
 
   MOCK_METHOD1(AddRemoteURL, void(const std::string &url_string));
   MOCK_METHOD1(AddRemoteIP, void(IPAddress ip));
diff --git a/mock_connection_info_reader.h b/mock_connection_info_reader.h
index 8d1ff37..20c804c 100644
--- a/mock_connection_info_reader.h
+++ b/mock_connection_info_reader.h
@@ -19,7 +19,7 @@
 class MockConnectionInfoReader : public ConnectionInfoReader {
  public:
   MockConnectionInfoReader();
-  virtual ~MockConnectionInfoReader();
+  ~MockConnectionInfoReader() override;
 
   MOCK_METHOD1(LoadConnectionInfo,
                bool(std::vector<ConnectionInfo> *info_list));
diff --git a/mock_control.h b/mock_control.h
index 9a3f1fa..1505d5b 100644
--- a/mock_control.h
+++ b/mock_control.h
@@ -15,7 +15,7 @@
 class MockControl : public ControlInterface {
  public:
   MockControl();
-  virtual ~MockControl();
+  ~MockControl() override;
 
   // Each of these can be called once.  Ownership of the appropriate
   // interface pointer is given up upon call.
diff --git a/mock_crypto_util_proxy.h b/mock_crypto_util_proxy.h
index 8b94512..36cbf1e 100644
--- a/mock_crypto_util_proxy.h
+++ b/mock_crypto_util_proxy.h
@@ -23,7 +23,7 @@
       public base::SupportsWeakPtr<MockCryptoUtilProxy> {
  public:
   MockCryptoUtilProxy(EventDispatcher *dispatcher, GLib *glib);
-  virtual ~MockCryptoUtilProxy();
+  ~MockCryptoUtilProxy() override;
 
   MOCK_METHOD9(VerifyDestination,
                bool(const std::string &certificate,
diff --git a/mock_dbus_objectmanager_proxy.h b/mock_dbus_objectmanager_proxy.h
index 07d6e02..4e7272f 100644
--- a/mock_dbus_objectmanager_proxy.h
+++ b/mock_dbus_objectmanager_proxy.h
@@ -15,7 +15,7 @@
 class MockDBusObjectManagerProxy : public DBusObjectManagerProxyInterface {
  public:
   MockDBusObjectManagerProxy();
-  virtual ~MockDBusObjectManagerProxy();
+  ~MockDBusObjectManagerProxy() override;
 
   MOCK_METHOD3(GetManagedObjects, void(Error *error,
                                        const ManagedObjectsCallback &callback,
diff --git a/mock_dbus_properties_proxy.h b/mock_dbus_properties_proxy.h
index 8435ad1..ceab080 100644
--- a/mock_dbus_properties_proxy.h
+++ b/mock_dbus_properties_proxy.h
@@ -17,7 +17,7 @@
 class MockDBusPropertiesProxy : public DBusPropertiesProxyInterface {
  public:
   MockDBusPropertiesProxy();
-  virtual ~MockDBusPropertiesProxy();
+  ~MockDBusPropertiesProxy() override;
 
   MOCK_METHOD1(GetAll, DBusPropertiesMap(const std::string &interface_name));
   MOCK_METHOD2(Get, DBus::Variant(const std::string &interface_name,
diff --git a/mock_dbus_service_proxy.h b/mock_dbus_service_proxy.h
index 2dd08fd..5f964d1 100644
--- a/mock_dbus_service_proxy.h
+++ b/mock_dbus_service_proxy.h
@@ -16,7 +16,7 @@
 class MockDBusServiceProxy : public DBusServiceProxyInterface {
  public:
   MockDBusServiceProxy();
-  virtual ~MockDBusServiceProxy();
+  ~MockDBusServiceProxy() override;
 
   MOCK_METHOD4(GetNameOwner, void(const std::string &name,
                                   Error *error,
diff --git a/mock_device.h b/mock_device.h
index 8596acb..c327b62 100644
--- a/mock_device.h
+++ b/mock_device.h
@@ -25,7 +25,7 @@
              const std::string &link_name,
              const std::string &address,
              int interface_index);
-  virtual ~MockDevice();
+  ~MockDevice() override;
 
   MOCK_METHOD2(Start, void(Error *error,
                            const EnabledStateChangedCallback &callback));
diff --git a/mock_device_info.h b/mock_device_info.h
index 8b54cf4..05e1bab 100644
--- a/mock_device_info.h
+++ b/mock_device_info.h
@@ -28,7 +28,7 @@
                  EventDispatcher *dispatcher,
                  Metrics *metrics,
                  Manager *manager);
-  virtual ~MockDeviceInfo();
+  ~MockDeviceInfo() override;
 
   MOCK_METHOD1(IsDeviceBlackListed, bool(const std::string &device_name));
   MOCK_CONST_METHOD1(GetDevice, DeviceRefPtr(int interface_index));
diff --git a/mock_dhcp_config.h b/mock_dhcp_config.h
index 1ce2820..1c99b79 100644
--- a/mock_dhcp_config.h
+++ b/mock_dhcp_config.h
@@ -18,7 +18,7 @@
  public:
   MockDHCPConfig(ControlInterface *control_interface,
                  const std::string &device_name);
-  virtual ~MockDHCPConfig();
+  ~MockDHCPConfig() override;
 
   MOCK_METHOD0(RequestIP, bool());
   MOCK_METHOD1(ReleaseIP, bool(ReleaseReason));
diff --git a/mock_dhcp_provider.h b/mock_dhcp_provider.h
index cf6dd74..1d8f69d 100644
--- a/mock_dhcp_provider.h
+++ b/mock_dhcp_provider.h
@@ -19,7 +19,7 @@
 class MockDHCPProvider : public DHCPProvider {
  public:
   MockDHCPProvider();
-  virtual ~MockDHCPProvider();
+  ~MockDHCPProvider() override;
 
   MOCK_METHOD4(Init,
                void(ControlInterface *, EventDispatcher *, GLib *, Metrics *));
diff --git a/mock_dhcp_proxy.h b/mock_dhcp_proxy.h
index f982b91..38460d1 100644
--- a/mock_dhcp_proxy.h
+++ b/mock_dhcp_proxy.h
@@ -17,7 +17,7 @@
 class MockDHCPProxy : public DHCPProxyInterface {
  public:
   MockDHCPProxy();
-  virtual ~MockDHCPProxy();
+  ~MockDHCPProxy() override;
 
   MOCK_METHOD1(Rebind, void(const std::string &interface));
   MOCK_METHOD1(Release, void(const std::string &interface));
diff --git a/mock_diagnostics_reporter.h b/mock_diagnostics_reporter.h
index 0f84972..a99ca16 100644
--- a/mock_diagnostics_reporter.h
+++ b/mock_diagnostics_reporter.h
@@ -14,7 +14,7 @@
 class MockDiagnosticsReporter : public DiagnosticsReporter {
  public:
   MockDiagnosticsReporter();
-  virtual ~MockDiagnosticsReporter();
+  ~MockDiagnosticsReporter() override;
 
   MOCK_METHOD0(OnConnectivityEvent, void());
 
diff --git a/mock_dns_client.h b/mock_dns_client.h
index 723533f..1926751 100644
--- a/mock_dns_client.h
+++ b/mock_dns_client.h
@@ -17,7 +17,7 @@
 class MockDNSClient : public DNSClient {
  public:
   MockDNSClient();
-  virtual ~MockDNSClient();
+  ~MockDNSClient() override;
 
   MOCK_METHOD2(Start, bool(const std::string &hostname, Error *error));
   MOCK_METHOD0(Stop, void());
diff --git a/mock_dns_client_factory.h b/mock_dns_client_factory.h
index 39fe203..be1be17 100644
--- a/mock_dns_client_factory.h
+++ b/mock_dns_client_factory.h
@@ -19,7 +19,7 @@
 
 class MockDNSClientFactory : public DNSClientFactory {
  public:
-  virtual ~MockDNSClientFactory();
+  ~MockDNSClientFactory() override;
 
   // This is a singleton. Use MockDNSClientFactory::GetInstance()->Foo().
   static MockDNSClientFactory *GetInstance();
diff --git a/mock_dns_server_tester.h b/mock_dns_server_tester.h
index ba81f08..dc9a9b1 100644
--- a/mock_dns_server_tester.h
+++ b/mock_dns_server_tester.h
@@ -15,7 +15,7 @@
 class MockDNSServerTester : public DNSServerTester {
  public:
   explicit MockDNSServerTester(ConnectionRefPtr connection);
-  virtual ~MockDNSServerTester();
+  ~MockDNSServerTester() override;
 
   MOCK_METHOD0(Start, void());
   MOCK_METHOD0(Stop, void());
diff --git a/mock_eap_credentials.h b/mock_eap_credentials.h
index 5ba09bc..97b604e 100644
--- a/mock_eap_credentials.h
+++ b/mock_eap_credentials.h
@@ -18,7 +18,7 @@
 class MockEapCredentials : public EapCredentials {
  public:
   MockEapCredentials();
-  virtual ~MockEapCredentials();
+  ~MockEapCredentials() override;
 
   MOCK_CONST_METHOD0(IsConnectable, bool());
   MOCK_CONST_METHOD0(IsConnectableUsingPassphrase, bool());
diff --git a/mock_eap_listener.h b/mock_eap_listener.h
index 43b4680..d7df432 100644
--- a/mock_eap_listener.h
+++ b/mock_eap_listener.h
@@ -14,7 +14,7 @@
 class MockEapListener : public EapListener {
  public:
   MockEapListener();
-  virtual ~MockEapListener();
+  ~MockEapListener() override;
 
   MOCK_METHOD0(Start, bool());
   MOCK_METHOD0(Stop, void());
diff --git a/mock_ethernet.h b/mock_ethernet.h
index 2918547..195f080 100644
--- a/mock_ethernet.h
+++ b/mock_ethernet.h
@@ -27,7 +27,7 @@
                const std::string &link_name,
                const std::string &address,
                int interface_index);
-  virtual ~MockEthernet();
+  ~MockEthernet() override;
 
   MOCK_METHOD2(Start, void(Error *error,
                            const EnabledStateChangedCallback &callback));
diff --git a/mock_ethernet_eap_provider.h b/mock_ethernet_eap_provider.h
index b465aff..4f449d0 100644
--- a/mock_ethernet_eap_provider.h
+++ b/mock_ethernet_eap_provider.h
@@ -16,7 +16,7 @@
 class MockEthernetEapProvider : public EthernetEapProvider {
  public:
   MockEthernetEapProvider();
-  virtual ~MockEthernetEapProvider();
+  ~MockEthernetEapProvider() override;
 
   MOCK_METHOD0(Start, void());
   MOCK_METHOD0(Stop, void());
diff --git a/mock_ethernet_service.h b/mock_ethernet_service.h
index 0241fba..af7cbee 100644
--- a/mock_ethernet_service.h
+++ b/mock_ethernet_service.h
@@ -16,7 +16,7 @@
 class MockEthernetService : public EthernetService {
  public:
   MockEthernetService(ControlInterface *control_interface, Metrics *metrics);
-  virtual ~MockEthernetService();
+  ~MockEthernetService() override;
 
   MOCK_METHOD2(AddEAPCertification, bool(const std::string &name,
                                          size_t depth));
diff --git a/mock_event_dispatcher.h b/mock_event_dispatcher.h
index bf959a7..7a11d4c 100644
--- a/mock_event_dispatcher.h
+++ b/mock_event_dispatcher.h
@@ -15,7 +15,7 @@
 class MockEventDispatcher : public EventDispatcher {
  public:
   MockEventDispatcher();
-  virtual ~MockEventDispatcher();
+  ~MockEventDispatcher() override;
 
   MOCK_METHOD0(DispatchForever, void());
   MOCK_METHOD0(DispatchPendingEvents, void());
diff --git a/mock_external_task.h b/mock_external_task.h
index 8a3b979..0da1c97 100644
--- a/mock_external_task.h
+++ b/mock_external_task.h
@@ -21,7 +21,7 @@
                    GLib *glib,
                    const base::WeakPtr<RPCTaskDelegate> &task_delegate,
                    const base::Callback<void(pid_t, int)> &death_callback);
-  virtual ~MockExternalTask();
+  ~MockExternalTask() override;
 
   MOCK_METHOD5(Start,
                bool(const base::FilePath &file,
diff --git a/mock_file_io.h b/mock_file_io.h
index f04f62c..34f29a9 100644
--- a/mock_file_io.h
+++ b/mock_file_io.h
@@ -14,7 +14,7 @@
 class MockFileIO : public FileIO {
  public:
   MockFileIO() {}
-  virtual ~MockFileIO() {}
+  ~MockFileIO() override {};
   MOCK_METHOD3(Write, ssize_t(int fd, const void *buf, size_t count));
   MOCK_METHOD3(Read, ssize_t(int fd, void *buf, size_t count));
   MOCK_METHOD1(Close, int(int fd));
diff --git a/mock_glib.h b/mock_glib.h
index a8598dd..687f59d 100644
--- a/mock_glib.h
+++ b/mock_glib.h
@@ -17,7 +17,7 @@
 class MockGLib : public GLib {
  public:
   MockGLib();
-  virtual ~MockGLib();
+  ~MockGLib() override;
 
   MOCK_METHOD2(Base64Decode, guchar *(const gchar *text, gsize *out_len));
   MOCK_METHOD2(Base64Encode, gchar *(const guchar *data, gsize len));
diff --git a/mock_http_request.h b/mock_http_request.h
index 936e968..5ef01ec 100644
--- a/mock_http_request.h
+++ b/mock_http_request.h
@@ -16,7 +16,7 @@
 class MockHTTPRequest : public HTTPRequest {
  public:
   explicit MockHTTPRequest(ConnectionRefPtr connection);
-  virtual ~MockHTTPRequest();
+  ~MockHTTPRequest() override;
 
   MOCK_METHOD3(Start, HTTPRequest::Result(
       const HTTPURL &url,
diff --git a/mock_ip_address_store.h b/mock_ip_address_store.h
index 1e3640c..6690af4 100644
--- a/mock_ip_address_store.h
+++ b/mock_ip_address_store.h
@@ -15,7 +15,7 @@
 class MockIPAddressStore : public IPAddressStore {
  public:
   MockIPAddressStore();
-  virtual ~MockIPAddressStore();
+  ~MockIPAddressStore() override;
 
   MOCK_METHOD1(AddUnique, void(const IPAddress &ip));
   MOCK_METHOD0(Clear, void());
diff --git a/mock_ipconfig.h b/mock_ipconfig.h
index a8f2920..9929998 100644
--- a/mock_ipconfig.h
+++ b/mock_ipconfig.h
@@ -19,7 +19,7 @@
  public:
   MockIPConfig(ControlInterface *control_interface,
                const std::string &device_name);
-  virtual ~MockIPConfig();
+  ~MockIPConfig() override;
 
   MOCK_CONST_METHOD0(properties, const Properties &(void));
   MOCK_METHOD0(RequestIP, bool(void));
diff --git a/mock_link_monitor.h b/mock_link_monitor.h
index de7655b..5f01ba2 100644
--- a/mock_link_monitor.h
+++ b/mock_link_monitor.h
@@ -14,7 +14,7 @@
 class MockLinkMonitor : public LinkMonitor {
  public:
   MockLinkMonitor();
-  virtual ~MockLinkMonitor();
+  ~MockLinkMonitor() override;
 
   MOCK_METHOD0(Start, bool());
   MOCK_METHOD0(Stop, void());
diff --git a/mock_log.h b/mock_log.h
index beb516b..950840a 100644
--- a/mock_log.h
+++ b/mock_log.h
@@ -96,7 +96,7 @@
 class NiceScopedMockLog : public ScopedMockLog {
  public:
   NiceScopedMockLog();
-  virtual ~NiceScopedMockLog();
+  ~NiceScopedMockLog() override;
 };
 
 }  // namespace shill
diff --git a/mock_mac80211_monitor.h b/mock_mac80211_monitor.h
index cb1c426..fa7502d 100644
--- a/mock_mac80211_monitor.h
+++ b/mock_mac80211_monitor.h
@@ -20,7 +20,7 @@
                       size_t queue_length_limit,
                       const base::Closure &on_repair_callback,
                       Metrics *metrics);
-  virtual ~MockMac80211Monitor();
+  ~MockMac80211Monitor() override;
 
   MOCK_METHOD1(Start, void(const std::string &phy_name));
   MOCK_METHOD0(Stop, void());
diff --git a/mock_manager.h b/mock_manager.h
index cf5f7f7..513ed97 100644
--- a/mock_manager.h
+++ b/mock_manager.h
@@ -20,7 +20,7 @@
               EventDispatcher *dispatcher,
               Metrics *metrics,
               GLib *glib);
-  virtual ~MockManager();
+  ~MockManager() override;
 
   MOCK_METHOD0(device_info, DeviceInfo *());
   MOCK_METHOD0(modem_info, ModemInfo *());
diff --git a/mock_metrics.h b/mock_metrics.h
index 09386b8..3e33384 100644
--- a/mock_metrics.h
+++ b/mock_metrics.h
@@ -16,7 +16,7 @@
 class MockMetrics : public Metrics {
  public:
   explicit MockMetrics(EventDispatcher *dispatcher);
-  virtual ~MockMetrics();
+  ~MockMetrics() override;
 
   MOCK_METHOD0(Start, void());
   MOCK_METHOD0(Stop, void());
diff --git a/mock_mm1_bearer_proxy.h b/mock_mm1_bearer_proxy.h
index 527e991..cdef226 100644
--- a/mock_mm1_bearer_proxy.h
+++ b/mock_mm1_bearer_proxy.h
@@ -18,7 +18,7 @@
 class MockBearerProxy : public BearerProxyInterface {
  public:
   MockBearerProxy();
-  virtual ~MockBearerProxy();
+  ~MockBearerProxy() override;
 
   MOCK_METHOD3(Connect, void(Error *error,
                              const ResultCallback &callback,
diff --git a/mock_mm1_modem_location_proxy.h b/mock_mm1_modem_location_proxy.h
index 78ee345..d4dcbb9 100644
--- a/mock_mm1_modem_location_proxy.h
+++ b/mock_mm1_modem_location_proxy.h
@@ -16,7 +16,7 @@
 class MockModemLocationProxy : public ModemLocationProxyInterface {
  public:
   MockModemLocationProxy();
-  virtual ~MockModemLocationProxy();
+  ~MockModemLocationProxy() override;
 
   // Inherited methods from ModemLocationProxyInterface.
   MOCK_METHOD5(Setup, void(uint32_t sources,
diff --git a/mock_mm1_modem_modem3gpp_proxy.h b/mock_mm1_modem_modem3gpp_proxy.h
index 02a09eb..2dd6024 100644
--- a/mock_mm1_modem_modem3gpp_proxy.h
+++ b/mock_mm1_modem_modem3gpp_proxy.h
@@ -18,7 +18,7 @@
 class MockModemModem3gppProxy : public ModemModem3gppProxyInterface {
  public:
   MockModemModem3gppProxy();
-  virtual ~MockModemModem3gppProxy();
+  ~MockModemModem3gppProxy() override;
 
   MOCK_METHOD4(Register, void(const std::string &operator_id,
                               Error *error,
diff --git a/mock_mm1_modem_modemcdma_proxy.h b/mock_mm1_modem_modemcdma_proxy.h
index e721506..7c1759d 100644
--- a/mock_mm1_modem_modemcdma_proxy.h
+++ b/mock_mm1_modem_modemcdma_proxy.h
@@ -18,7 +18,7 @@
 class MockModemModemCdmaProxy : public ModemModemCdmaProxyInterface {
  public:
   MockModemModemCdmaProxy();
-  virtual ~MockModemModemCdmaProxy();
+  ~MockModemModemCdmaProxy() override;
 
   MOCK_METHOD4(Activate, void(
       const std::string &carrier,
diff --git a/mock_mm1_modem_proxy.h b/mock_mm1_modem_proxy.h
index 96a0f8c..c3fc3b2 100644
--- a/mock_mm1_modem_proxy.h
+++ b/mock_mm1_modem_proxy.h
@@ -19,7 +19,7 @@
 class MockModemProxy : public ModemProxyInterface {
  public:
   MockModemProxy();
-  virtual ~MockModemProxy();
+  ~MockModemProxy() override;
 
   // Inherited methods from ModemProxyInterface.
   MOCK_METHOD4(Enable, void(bool enable,
diff --git a/mock_mm1_modem_simple_proxy.h b/mock_mm1_modem_simple_proxy.h
index affcafd..0c993e4 100644
--- a/mock_mm1_modem_simple_proxy.h
+++ b/mock_mm1_modem_simple_proxy.h
@@ -18,7 +18,7 @@
 class MockModemSimpleProxy : public ModemSimpleProxyInterface {
  public:
   MockModemSimpleProxy();
-  virtual ~MockModemSimpleProxy();
+  ~MockModemSimpleProxy() override;
 
   MOCK_METHOD4(Connect, void(const DBusPropertiesMap &properties,
                              Error *error,
diff --git a/mock_mm1_modem_time_proxy.h b/mock_mm1_modem_time_proxy.h
index 27705c3..888a661 100644
--- a/mock_mm1_modem_time_proxy.h
+++ b/mock_mm1_modem_time_proxy.h
@@ -16,7 +16,7 @@
 class MockModemTimeProxy : public ModemTimeProxyInterface {
  public:
   MockModemTimeProxy();
-  virtual ~MockModemTimeProxy();
+  ~MockModemTimeProxy() override;
 
   // Inherited methods from ModemTimeProxyInterface.
   MOCK_METHOD3(GetNetworkTime, void(Error *error,
diff --git a/mock_mm1_sim_proxy.h b/mock_mm1_sim_proxy.h
index 2d4a479..7712e5d 100644
--- a/mock_mm1_sim_proxy.h
+++ b/mock_mm1_sim_proxy.h
@@ -18,7 +18,7 @@
 class MockSimProxy : public SimProxyInterface {
  public:
   MockSimProxy();
-  virtual ~MockSimProxy();
+  ~MockSimProxy() override;
 
   MOCK_METHOD4(SendPin, void(const std::string &pin,
                              Error *error,
diff --git a/mock_mobile_operator_info.h b/mock_mobile_operator_info.h
index ccdd447..65d4a8c 100644
--- a/mock_mobile_operator_info.h
+++ b/mock_mobile_operator_info.h
@@ -20,7 +20,7 @@
  public:
   MockMobileOperatorInfo(EventDispatcher *dispatcher,
                          const std::string &info_owner);
-  virtual ~MockMobileOperatorInfo();
+  ~MockMobileOperatorInfo() override;
 
   MOCK_CONST_METHOD0(IsMobileNetworkOperatorKnown, bool());
 
diff --git a/mock_modem.h b/mock_modem.h
index d5899ea..86d5e2b 100644
--- a/mock_modem.h
+++ b/mock_modem.h
@@ -19,7 +19,7 @@
             const std::string &service,
             const std::string &path,
             ModemInfo *modem_info);
-  virtual ~MockModem();
+  ~MockModem() override;
 
   // This class only mocks the pure virtual methods; if you need a
   // more thorough mock, know that modem_unittest.cc depends on the
diff --git a/mock_modem_cdma_proxy.h b/mock_modem_cdma_proxy.h
index 915f1b1..7c5ddb6 100644
--- a/mock_modem_cdma_proxy.h
+++ b/mock_modem_cdma_proxy.h
@@ -17,7 +17,7 @@
 class MockModemCDMAProxy : public ModemCDMAProxyInterface {
  public:
   MockModemCDMAProxy();
-  virtual ~MockModemCDMAProxy();
+  ~MockModemCDMAProxy() override;
 
   MOCK_METHOD4(Activate, void(const std::string &carrier, Error *error,
                               const ActivationResultCallback &callback,
diff --git a/mock_modem_gobi_proxy.h b/mock_modem_gobi_proxy.h
index 3eef216..a89fe74 100644
--- a/mock_modem_gobi_proxy.h
+++ b/mock_modem_gobi_proxy.h
@@ -17,7 +17,7 @@
 class MockModemGobiProxy : public ModemGobiProxyInterface {
  public:
   MockModemGobiProxy();
-  virtual ~MockModemGobiProxy();
+  ~MockModemGobiProxy() override;
 
   MOCK_METHOD4(SetCarrier, void(const std::string &carrier,
                                 Error *error, const ResultCallback &callback,
diff --git a/mock_modem_gsm_card_proxy.h b/mock_modem_gsm_card_proxy.h
index 840f24a..3b66e9f 100644
--- a/mock_modem_gsm_card_proxy.h
+++ b/mock_modem_gsm_card_proxy.h
@@ -17,7 +17,7 @@
 class MockModemGSMCardProxy : public ModemGSMCardProxyInterface {
  public:
   MockModemGSMCardProxy();
-  virtual ~MockModemGSMCardProxy();
+  ~MockModemGSMCardProxy() override;
 
   MOCK_METHOD3(GetIMEI, void(Error *error,
                              const GSMIdentifierCallback &callback,
diff --git a/mock_modem_gsm_network_proxy.h b/mock_modem_gsm_network_proxy.h
index 63dcb3a..ba79a35 100644
--- a/mock_modem_gsm_network_proxy.h
+++ b/mock_modem_gsm_network_proxy.h
@@ -17,7 +17,7 @@
 class MockModemGSMNetworkProxy : public ModemGSMNetworkProxyInterface {
  public:
   MockModemGSMNetworkProxy();
-  virtual ~MockModemGSMNetworkProxy();
+  ~MockModemGSMNetworkProxy() override;
 
   MOCK_METHOD3(GetRegistrationInfo,
                void(Error *error, const RegistrationInfoCallback &callback,
diff --git a/mock_modem_info.h b/mock_modem_info.h
index 33f4881..08ca9d3 100644
--- a/mock_modem_info.h
+++ b/mock_modem_info.h
@@ -31,7 +31,7 @@
                 Manager *manager,
                 GLib *glib);
 
-  virtual ~MockModemInfo();
+  ~MockModemInfo() override;
 
   // Replaces data members in ModemInfo by mock objects.
   // The following are relaced by mocks if they are NULL: control_interface,
diff --git a/mock_modem_manager_proxy.h b/mock_modem_manager_proxy.h
index 2cb4071..d54d0c1 100644
--- a/mock_modem_manager_proxy.h
+++ b/mock_modem_manager_proxy.h
@@ -17,7 +17,7 @@
 class MockModemManagerProxy : public ModemManagerProxyInterface {
  public:
   MockModemManagerProxy();
-  virtual ~MockModemManagerProxy();
+  ~MockModemManagerProxy() override;
 
   MOCK_METHOD0(EnumerateDevices, std::vector<DBus::Path>());
 
diff --git a/mock_modem_proxy.h b/mock_modem_proxy.h
index 5d38290..fc454c2 100644
--- a/mock_modem_proxy.h
+++ b/mock_modem_proxy.h
@@ -15,7 +15,7 @@
 class MockModemProxy : public ModemProxyInterface {
  public:
   MockModemProxy();
-  virtual ~MockModemProxy();
+  ~MockModemProxy() override;
 
   MOCK_METHOD4(Enable, void(bool enable, Error *error,
                             const ResultCallback &callback, int timeout));
diff --git a/mock_modem_simple_proxy.h b/mock_modem_simple_proxy.h
index 6a2adf7..e08055b 100644
--- a/mock_modem_simple_proxy.h
+++ b/mock_modem_simple_proxy.h
@@ -15,7 +15,7 @@
 class MockModemSimpleProxy : public ModemSimpleProxyInterface {
  public:
   MockModemSimpleProxy();
-  virtual ~MockModemSimpleProxy();
+  ~MockModemSimpleProxy() override;
 
   MOCK_METHOD3(GetModemStatus, void(Error *error,
                                     const DBusPropertyMapCallback &callback,
diff --git a/mock_netlink_manager.h b/mock_netlink_manager.h
index 0a23439..6c252f9 100644
--- a/mock_netlink_manager.h
+++ b/mock_netlink_manager.h
@@ -19,7 +19,7 @@
 class MockNetlinkManager : public NetlinkManager {
  public:
   MockNetlinkManager();
-  virtual ~MockNetlinkManager();
+  ~MockNetlinkManager() override;
 
   MOCK_METHOD2(
       GetFamily,
diff --git a/mock_openvpn_driver.h b/mock_openvpn_driver.h
index c809654..8e3f544 100644
--- a/mock_openvpn_driver.h
+++ b/mock_openvpn_driver.h
@@ -16,7 +16,7 @@
 class MockOpenVPNDriver : public OpenVPNDriver {
  public:
   MockOpenVPNDriver();
-  virtual ~MockOpenVPNDriver();
+  ~MockOpenVPNDriver() override;
 
   MOCK_METHOD1(OnReconnecting, void(ReconnectReason reason));
   MOCK_METHOD0(IdleService, void());
diff --git a/mock_openvpn_management_server.h b/mock_openvpn_management_server.h
index a816dd3..02a8d3d 100644
--- a/mock_openvpn_management_server.h
+++ b/mock_openvpn_management_server.h
@@ -17,7 +17,7 @@
 class MockOpenVPNManagementServer : public OpenVPNManagementServer {
  public:
   MockOpenVPNManagementServer();
-  virtual ~MockOpenVPNManagementServer();
+  ~MockOpenVPNManagementServer() override;
 
   MOCK_METHOD3(Start, bool(EventDispatcher *dispatcher,
                            Sockets *sockets,
diff --git a/mock_out_of_credits_detector.h b/mock_out_of_credits_detector.h
index cbc61d4..29106bc 100644
--- a/mock_out_of_credits_detector.h
+++ b/mock_out_of_credits_detector.h
@@ -17,7 +17,7 @@
                            Manager *manager,
                            Metrics *metrics,
                            CellularService *service);
-  virtual ~MockOutOfCreditsDetector();
+  ~MockOutOfCreditsDetector() override;
 
   MOCK_METHOD0(ResetDetector, void());
   MOCK_CONST_METHOD0(IsDetecting, bool());
diff --git a/mock_pending_activation_store.h b/mock_pending_activation_store.h
index 50b5937..f58f1d2 100644
--- a/mock_pending_activation_store.h
+++ b/mock_pending_activation_store.h
@@ -17,7 +17,7 @@
 class MockPendingActivationStore : public PendingActivationStore {
  public:
   MockPendingActivationStore();
-  virtual ~MockPendingActivationStore();
+  ~MockPendingActivationStore() override;
 
   MOCK_METHOD2(InitStorage,
                bool(GLib *glib, const base::FilePath &storage_path));
diff --git a/mock_portal_detector.h b/mock_portal_detector.h
index 2370d12..c9349db 100644
--- a/mock_portal_detector.h
+++ b/mock_portal_detector.h
@@ -17,7 +17,7 @@
 class MockPortalDetector : public PortalDetector {
  public:
   explicit MockPortalDetector(ConnectionRefPtr connection);
-  virtual ~MockPortalDetector();
+  ~MockPortalDetector() override;
 
   MOCK_METHOD1(Start, bool(const std::string &));
   MOCK_METHOD2(StartAfterDelay, bool(const std::string &, int delay_seconds));
diff --git a/mock_power_manager.h b/mock_power_manager.h
index b2f6631..ee0c334 100644
--- a/mock_power_manager.h
+++ b/mock_power_manager.h
@@ -19,7 +19,7 @@
 class MockPowerManager : public PowerManager {
  public:
   MockPowerManager(EventDispatcher *dispatcher, ProxyFactory *proxy_factory);
-  virtual ~MockPowerManager();
+  ~MockPowerManager() override;
 
   MOCK_METHOD5(AddSuspendDelay,
                bool(const std::string &key,
diff --git a/mock_power_manager_proxy.h b/mock_power_manager_proxy.h
index fc54152..30698d9 100644
--- a/mock_power_manager_proxy.h
+++ b/mock_power_manager_proxy.h
@@ -17,7 +17,7 @@
 class MockPowerManagerProxy : public PowerManagerProxyInterface {
  public:
   MockPowerManagerProxy();
-  virtual ~MockPowerManagerProxy();
+  ~MockPowerManagerProxy() override;
 
   MOCK_METHOD3(RegisterSuspendDelay,
                bool(base::TimeDelta timeout,
diff --git a/mock_ppp_device.h b/mock_ppp_device.h
index 2e98c0a..07c792f 100644
--- a/mock_ppp_device.h
+++ b/mock_ppp_device.h
@@ -22,7 +22,7 @@
                 Manager *manager,
                 const std::string &link_name,
                 int interface_index);
-  virtual ~MockPPPDevice();
+  ~MockPPPDevice() override;
 
   MOCK_METHOD2(Stop,
                void(Error *error, const EnabledStateChangedCallback &callback));
diff --git a/mock_process_killer.h b/mock_process_killer.h
index 6399f34..6dae6fd 100644
--- a/mock_process_killer.h
+++ b/mock_process_killer.h
@@ -14,7 +14,7 @@
 class MockProcessKiller : public ProcessKiller {
  public:
   MockProcessKiller();
-  virtual ~MockProcessKiller();
+  ~MockProcessKiller() override;
 
   MOCK_METHOD2(Wait, bool(int pid, const base::Closure &callback));
   MOCK_METHOD2(Kill, void(int pid, const base::Closure &callback));
diff --git a/mock_profile.h b/mock_profile.h
index 64b8f96..7b0a6df 100644
--- a/mock_profile.h
+++ b/mock_profile.h
@@ -21,7 +21,7 @@
               Metrics *metrics,
               Manager *manager,
               const std::string &identifier);
-  virtual ~MockProfile();
+  ~MockProfile() override;
 
   MOCK_METHOD1(AdoptService, bool(const ServiceRefPtr &service));
   MOCK_METHOD1(AbandonService, bool(const ServiceRefPtr &service));
diff --git a/mock_property_store.h b/mock_property_store.h
index fa52421..fd1af87 100644
--- a/mock_property_store.h
+++ b/mock_property_store.h
@@ -17,7 +17,7 @@
 class MockPropertyStore : public PropertyStore {
  public:
   MockPropertyStore();
-  virtual ~MockPropertyStore();
+  ~MockPropertyStore() override;
 
   MOCK_CONST_METHOD1(Contains, bool(const std::string&));
   MOCK_METHOD3(SetBoolProperty, bool(const std::string&, bool, Error*));
diff --git a/mock_proxy_factory.h b/mock_proxy_factory.h
index 0c76508..53066a7 100644
--- a/mock_proxy_factory.h
+++ b/mock_proxy_factory.h
@@ -16,7 +16,7 @@
 class MockProxyFactory : public ProxyFactory {
  public:
   MockProxyFactory();
-  virtual ~MockProxyFactory();
+  ~MockProxyFactory() override;
 
   MOCK_METHOD0(Init, void());
 
diff --git a/mock_resolver.h b/mock_resolver.h
index 05ac126..0da2e1f 100644
--- a/mock_resolver.h
+++ b/mock_resolver.h
@@ -18,7 +18,7 @@
 class MockResolver : public Resolver {
  public:
   MockResolver();
-  virtual ~MockResolver();
+  ~MockResolver() override;
 
   MOCK_METHOD2(SetDNSFromLists,
                bool(const std::vector<std::string> &dns_servers,
diff --git a/mock_routing_table.h b/mock_routing_table.h
index d04831c..ab5a99f 100644
--- a/mock_routing_table.h
+++ b/mock_routing_table.h
@@ -15,7 +15,7 @@
 class MockRoutingTable : public RoutingTable {
  public:
   MockRoutingTable();
-  virtual ~MockRoutingTable();
+  ~MockRoutingTable() override;
 
   MOCK_METHOD0(Start, void());
   MOCK_METHOD0(Stop, void());
diff --git a/mock_rtnl_handler.h b/mock_rtnl_handler.h
index eff4fc1..e19933a 100644
--- a/mock_rtnl_handler.h
+++ b/mock_rtnl_handler.h
@@ -17,7 +17,7 @@
 class MockRTNLHandler : public RTNLHandler {
  public:
   MockRTNLHandler();
-  virtual ~MockRTNLHandler();
+  ~MockRTNLHandler() override;
 
   MOCK_METHOD2(Start, void(EventDispatcher *dispatcher, Sockets *sockets));
   MOCK_METHOD1(AddListener, void(RTNLListener *to_add));
diff --git a/mock_scan_session.h b/mock_scan_session.h
index e0af2eb..16b15a4 100644
--- a/mock_scan_session.h
+++ b/mock_scan_session.h
@@ -32,7 +32,7 @@
                   int max_frequencies,
                   OnScanFailed on_scan_failed,
                   Metrics *metrics);
-  virtual ~MockScanSession();
+  ~MockScanSession() override;
 
   MOCK_CONST_METHOD0(HasMoreFrequencies, bool());
   MOCK_METHOD1(AddSsid, void(const ByteString &ssid));
diff --git a/mock_service.h b/mock_service.h
index 3da3dd2..c4f850e 100644
--- a/mock_service.h
+++ b/mock_service.h
@@ -24,7 +24,7 @@
               EventDispatcher *dispatcher,
               Metrics *metrics,
               Manager *manager);
-  virtual ~MockService();
+  ~MockService() override;
 
   MOCK_METHOD0(AutoConnect, void());
   MOCK_METHOD2(Connect, void(Error *error, const char *reason));
diff --git a/mock_socket_info_reader.h b/mock_socket_info_reader.h
index 1ced570..eae003c 100644
--- a/mock_socket_info_reader.h
+++ b/mock_socket_info_reader.h
@@ -19,7 +19,7 @@
 class MockSocketInfoReader : public SocketInfoReader {
  public:
   MockSocketInfoReader();
-  virtual ~MockSocketInfoReader();
+  ~MockSocketInfoReader() override;
 
   MOCK_METHOD1(LoadTcpSocketInfo, bool(std::vector<SocketInfo> *info_list));
 
diff --git a/mock_sockets.h b/mock_sockets.h
index 03ee1bc..fd48f71 100644
--- a/mock_sockets.h
+++ b/mock_sockets.h
@@ -17,7 +17,7 @@
 class MockSockets : public Sockets {
  public:
   MockSockets();
-  virtual ~MockSockets();
+  ~MockSockets() override;
 
   MOCK_CONST_METHOD3(Accept, int(int sockfd, struct sockaddr *addr,
                                  socklen_t *addrlen));
diff --git a/mock_store.h b/mock_store.h
index 9c6a473..ea077a2 100644
--- a/mock_store.h
+++ b/mock_store.h
@@ -20,7 +20,7 @@
 class MockStore : public StoreInterface {
  public:
   MockStore();
-  virtual ~MockStore();
+  ~MockStore() override;
 
   MOCK_METHOD0(Flush, bool());
   MOCK_CONST_METHOD0(GetGroups, std::set<std::string>());
diff --git a/mock_supplicant_bss_proxy.h b/mock_supplicant_bss_proxy.h
index 36de1e4..825969a 100644
--- a/mock_supplicant_bss_proxy.h
+++ b/mock_supplicant_bss_proxy.h
@@ -15,7 +15,7 @@
 class MockSupplicantBSSProxy : public SupplicantBSSProxyInterface {
  public:
   MockSupplicantBSSProxy();
-  virtual ~MockSupplicantBSSProxy();
+  ~MockSupplicantBSSProxy() override;
 
   MOCK_METHOD0(Die, void());  // So we can EXPECT the dtor.
 
diff --git a/mock_supplicant_eap_state_handler.h b/mock_supplicant_eap_state_handler.h
index ed417e5..d05b665 100644
--- a/mock_supplicant_eap_state_handler.h
+++ b/mock_supplicant_eap_state_handler.h
@@ -16,7 +16,7 @@
 class MockSupplicantEAPStateHandler : public SupplicantEAPStateHandler {
  public:
   MockSupplicantEAPStateHandler();
-  virtual ~MockSupplicantEAPStateHandler();
+  ~MockSupplicantEAPStateHandler() override;
 
   MOCK_METHOD3(ParseStatus, bool(const std::string &status,
                                  const std::string &parameter,
diff --git a/mock_supplicant_interface_proxy.h b/mock_supplicant_interface_proxy.h
index 6d3dcdf..f9b1314 100644
--- a/mock_supplicant_interface_proxy.h
+++ b/mock_supplicant_interface_proxy.h
@@ -20,7 +20,7 @@
 class MockSupplicantInterfaceProxy : public SupplicantInterfaceProxyInterface {
  public:
   MockSupplicantInterfaceProxy();
-  virtual ~MockSupplicantInterfaceProxy();
+  ~MockSupplicantInterfaceProxy() override;
 
   MOCK_METHOD1(AddNetwork, ::DBus::Path(
       const std::map<std::string, ::DBus::Variant> &args));
diff --git a/mock_supplicant_network_proxy.h b/mock_supplicant_network_proxy.h
index 8d7ff1b..772ecdf 100644
--- a/mock_supplicant_network_proxy.h
+++ b/mock_supplicant_network_proxy.h
@@ -15,7 +15,7 @@
 class MockSupplicantNetworkProxy : public SupplicantNetworkProxyInterface {
  public:
   MockSupplicantNetworkProxy();
-  virtual ~MockSupplicantNetworkProxy();
+  ~MockSupplicantNetworkProxy() override;
 
   MOCK_METHOD1(SetEnabled, void(bool enabled));
 
diff --git a/mock_supplicant_process_proxy.h b/mock_supplicant_process_proxy.h
index ce6b513..74393a0 100644
--- a/mock_supplicant_process_proxy.h
+++ b/mock_supplicant_process_proxy.h
@@ -19,7 +19,7 @@
 class MockSupplicantProcessProxy : public SupplicantProcessProxyInterface {
  public:
   MockSupplicantProcessProxy();
-  virtual ~MockSupplicantProcessProxy();
+  ~MockSupplicantProcessProxy() override;
 
   MOCK_METHOD1(CreateInterface,
                ::DBus::Path(
diff --git a/mock_time.h b/mock_time.h
index 05880b6..e1f4230 100644
--- a/mock_time.h
+++ b/mock_time.h
@@ -15,7 +15,7 @@
 class MockTime : public Time {
  public:
   MockTime();
-  virtual ~MockTime();
+  ~MockTime() override;
 
   MOCK_METHOD1(GetSecondsMonotonic, bool(time_t *seconds));
   MOCK_METHOD1(GetSecondsBoottime, bool(time_t *seconds));
diff --git a/mock_traffic_monitor.h b/mock_traffic_monitor.h
index c8152c7..e1e8611 100644
--- a/mock_traffic_monitor.h
+++ b/mock_traffic_monitor.h
@@ -14,7 +14,7 @@
 class MockTrafficMonitor : public TrafficMonitor {
  public:
   MockTrafficMonitor();
-  virtual ~MockTrafficMonitor();
+  ~MockTrafficMonitor() override;
 
   MOCK_METHOD0(Start, void());
   MOCK_METHOD0(Stop, void());
diff --git a/mock_virtual_device.h b/mock_virtual_device.h
index c10f246..fa58232 100644
--- a/mock_virtual_device.h
+++ b/mock_virtual_device.h
@@ -22,7 +22,7 @@
                     const std::string &link_name,
                     int interface_index,
                     Technology::Identifier technology);
-  virtual ~MockVirtualDevice();
+  ~MockVirtualDevice() override;
 
   MOCK_METHOD2(Stop,
                void(Error *error, const EnabledStateChangedCallback &callback));
diff --git a/mock_vpn_driver.h b/mock_vpn_driver.h
index cee2f1d..8344ec9 100644
--- a/mock_vpn_driver.h
+++ b/mock_vpn_driver.h
@@ -16,7 +16,7 @@
 class MockVPNDriver : public VPNDriver {
  public:
   MockVPNDriver();
-  virtual ~MockVPNDriver();
+  ~MockVPNDriver() override;
 
   MOCK_METHOD2(ClaimInterface, bool(const std::string &link_name,
                                     int interface_index));
diff --git a/mock_vpn_provider.h b/mock_vpn_provider.h
index 8e83aa9..4661645 100644
--- a/mock_vpn_provider.h
+++ b/mock_vpn_provider.h
@@ -17,7 +17,7 @@
 class MockVPNProvider : public VPNProvider {
  public:
   MockVPNProvider();
-  virtual ~MockVPNProvider();
+  ~MockVPNProvider() override;
 
   MOCK_METHOD0(Start, void());
   MOCK_METHOD0(Stop, void());
diff --git a/mock_vpn_service.h b/mock_vpn_service.h
index 530a896..4e8362c 100644
--- a/mock_vpn_service.h
+++ b/mock_vpn_service.h
@@ -18,7 +18,7 @@
                  Metrics *metrics,
                  Manager *manager,
                  VPNDriver *driver);
-  virtual ~MockVPNService();
+  ~MockVPNService() override;
 
   MOCK_METHOD1(SetState, void(ConnectState state));
   MOCK_METHOD1(SetFailure, void(ConnectFailure failure));
diff --git a/mock_wifi.h b/mock_wifi.h
index b6997a9..8b85a71 100644
--- a/mock_wifi.h
+++ b/mock_wifi.h
@@ -32,7 +32,7 @@
            const std::string &link_name,
            const std::string &address,
            int interface_index);
-  virtual ~MockWiFi();
+  ~MockWiFi() override;
 
   MOCK_METHOD2(Start, void(Error *error,
                            const EnabledStateChangedCallback &callback));
diff --git a/mock_wifi_provider.h b/mock_wifi_provider.h
index 6b1953c..ec6bc1c 100644
--- a/mock_wifi_provider.h
+++ b/mock_wifi_provider.h
@@ -15,7 +15,7 @@
 class MockWiFiProvider : public WiFiProvider {
  public:
   MockWiFiProvider();
-  virtual ~MockWiFiProvider();
+  ~MockWiFiProvider() override;
 
   MOCK_METHOD0(Start, void());
   MOCK_METHOD0(Stop, void());
diff --git a/mock_wifi_service.h b/mock_wifi_service.h
index df4892a..cc0e138 100644
--- a/mock_wifi_service.h
+++ b/mock_wifi_service.h
@@ -25,7 +25,7 @@
                   const std::string &mode,
                   const std::string &security,
                   bool hidden_ssid);
-  virtual ~MockWiFiService();
+  ~MockWiFiService() override;
 
   MOCK_METHOD2(Configure, void(const KeyValueStore &args, Error *error));
   MOCK_METHOD1(SetFailure, void(ConnectFailure failure));
diff --git a/mock_wimax.h b/mock_wimax.h
index b4b308b..0a17564 100644
--- a/mock_wimax.h
+++ b/mock_wimax.h
@@ -27,7 +27,7 @@
             const std::string &address,
             int interface_index,
             const RpcIdentifier &path);
-  virtual ~MockWiMax();
+  ~MockWiMax() override;
 
   MOCK_METHOD2(Start, void(Error *error,
                            const EnabledStateChangedCallback &callback));
diff --git a/mock_wimax_device_proxy.h b/mock_wimax_device_proxy.h
index 8f59773..0ef9f31 100644
--- a/mock_wimax_device_proxy.h
+++ b/mock_wimax_device_proxy.h
@@ -17,7 +17,7 @@
 class MockWiMaxDeviceProxy : public WiMaxDeviceProxyInterface {
  public:
   MockWiMaxDeviceProxy();
-  virtual ~MockWiMaxDeviceProxy();
+  ~MockWiMaxDeviceProxy() override;
 
   MOCK_METHOD3(Enable, void(Error *error,
                             const ResultCallback &callback,
diff --git a/mock_wimax_manager_proxy.h b/mock_wimax_manager_proxy.h
index 64d3b05..38f3e29 100644
--- a/mock_wimax_manager_proxy.h
+++ b/mock_wimax_manager_proxy.h
@@ -17,7 +17,7 @@
 class MockWiMaxManagerProxy : public WiMaxManagerProxyInterface {
  public:
   MockWiMaxManagerProxy();
-  virtual ~MockWiMaxManagerProxy();
+  ~MockWiMaxManagerProxy() override;
 
   MOCK_METHOD1(set_devices_changed_callback,
                void(const DevicesChangedCallback &callback));
diff --git a/mock_wimax_network_proxy.h b/mock_wimax_network_proxy.h
index b4de2c4..6b62606 100644
--- a/mock_wimax_network_proxy.h
+++ b/mock_wimax_network_proxy.h
@@ -16,7 +16,7 @@
 class MockWiMaxNetworkProxy : public WiMaxNetworkProxyInterface {
  public:
   MockWiMaxNetworkProxy();
-  virtual ~MockWiMaxNetworkProxy();
+  ~MockWiMaxNetworkProxy() override;
 
   MOCK_CONST_METHOD0(path, RpcIdentifier());
   MOCK_METHOD1(set_signal_strength_changed_callback,
diff --git a/mock_wimax_provider.h b/mock_wimax_provider.h
index 6a401ad..5527a40 100644
--- a/mock_wimax_provider.h
+++ b/mock_wimax_provider.h
@@ -16,7 +16,7 @@
 class MockWiMaxProvider : public WiMaxProvider {
  public:
   MockWiMaxProvider();
-  virtual ~MockWiMaxProvider();
+  ~MockWiMaxProvider() override;
 
   MOCK_METHOD1(OnDeviceInfoAvailable, void(const std::string &link_name));
   MOCK_METHOD0(OnNetworksChanged, void());
diff --git a/mock_wimax_service.h b/mock_wimax_service.h
index 5f3860b..6e2d1b8 100644
--- a/mock_wimax_service.h
+++ b/mock_wimax_service.h
@@ -17,7 +17,7 @@
                    EventDispatcher *dispatcher,
                    Metrics *metrics,
                    Manager *manager);
-  virtual ~MockWiMaxService();
+  ~MockWiMaxService() override;
 
   MOCK_CONST_METHOD0(GetNetworkObjectPath, RpcIdentifier());
   MOCK_METHOD1(Start, bool(WiMaxNetworkProxyInterface *proxy));
diff --git a/modem.h b/modem.h
index cb27ca1..59c1315 100644
--- a/modem.h
+++ b/modem.h
@@ -139,7 +139,7 @@
                const std::string &service,
                const std::string &path,
                ModemInfo *modem_info);
-  virtual ~ModemClassic();
+  ~ModemClassic() override;
 
   // Gathers information and passes it to CreateDeviceFromModemProperties.
   void CreateDeviceClassic(const DBusPropertiesMap &modem_properties);
@@ -159,7 +159,7 @@
          const std::string &service,
          const std::string &path,
          ModemInfo *modem_info);
-  virtual ~Modem1();
+  ~Modem1() override;
 
   // Gathers information and passes it to CreateDeviceFromModemProperties.
   void CreateDeviceMM1(const DBusInterfaceToProperties &properties);
diff --git a/modem_cdma_proxy.h b/modem_cdma_proxy.h
index 4c8eb2a..7b31290 100644
--- a/modem_cdma_proxy.h
+++ b/modem_cdma_proxy.h
@@ -21,7 +21,7 @@
   ModemCDMAProxy(DBus::Connection *connection,
                  const std::string &path,
                  const std::string &service);
-  virtual ~ModemCDMAProxy();
+  ~ModemCDMAProxy() override;
 
   // Inherited from ModemCDMAProxyInterface.
   virtual void Activate(const std::string &carrier, Error *error,
@@ -49,7 +49,7 @@
     Proxy(DBus::Connection *connection,
           const std::string &path,
           const std::string &service);
-    virtual ~Proxy();
+    ~Proxy() override;
 
     void set_activation_state_callback(
         const ActivationStateSignalCallback &callback);
diff --git a/modem_gobi_proxy.h b/modem_gobi_proxy.h
index bc6bb78..f1ad31c 100644
--- a/modem_gobi_proxy.h
+++ b/modem_gobi_proxy.h
@@ -22,7 +22,7 @@
   ModemGobiProxy(DBus::Connection *connection,
                  const std::string &path,
                  const std::string &service);
-  virtual ~ModemGobiProxy();
+  ~ModemGobiProxy() override;
 
   // Inherited from ModemGobiProxyInterface.
   virtual void SetCarrier(const std::string &carrier,
@@ -37,7 +37,7 @@
     Proxy(DBus::Connection *connection,
           const std::string &path,
           const std::string &service);
-    virtual ~Proxy();
+    ~Proxy() override;
 
    private:
     // Signal callbacks inherited from ModemManager::Modem::Gobi_proxy.
diff --git a/modem_gsm_card_proxy.h b/modem_gsm_card_proxy.h
index 1c71e9b..fe1be74 100644
--- a/modem_gsm_card_proxy.h
+++ b/modem_gsm_card_proxy.h
@@ -22,7 +22,7 @@
   ModemGSMCardProxy(DBus::Connection *connection,
                     const std::string &path,
                     const std::string &service);
-  virtual ~ModemGSMCardProxy();
+  ~ModemGSMCardProxy() override;
 
   // Inherited from ModemGSMCardProxyInterface.
   virtual void GetIMEI(Error *error, const GSMIdentifierCallback &callback,
@@ -56,7 +56,7 @@
     Proxy(DBus::Connection *connection,
           const std::string &path,
           const std::string &service);
-    virtual ~Proxy();
+    ~Proxy() override;
 
    private:
     // Signal callbacks inherited from ModemManager::Modem::Gsm::Card_proxy.
diff --git a/modem_gsm_network_proxy.h b/modem_gsm_network_proxy.h
index 7b1b15e..a4dd3e0 100644
--- a/modem_gsm_network_proxy.h
+++ b/modem_gsm_network_proxy.h
@@ -20,7 +20,7 @@
   ModemGSMNetworkProxy(DBus::Connection *connection,
                        const std::string &path,
                        const std::string &service);
-  virtual ~ModemGSMNetworkProxy();
+  ~ModemGSMNetworkProxy() override;
 
   // Inherited from ModemGSMNetworkProxyInterface.
   virtual void GetRegistrationInfo(Error *error,
@@ -51,7 +51,7 @@
     Proxy(DBus::Connection *connection,
           const std::string &path,
           const std::string &service);
-    virtual ~Proxy();
+    ~Proxy() override;
 
     virtual void set_signal_quality_callback(
         const SignalQualitySignalCallback &callback);
diff --git a/modem_manager.h b/modem_manager.h
index cebd30c..51ae398 100644
--- a/modem_manager.h
+++ b/modem_manager.h
@@ -111,7 +111,7 @@
                       const std::string &path,
                       ModemInfo *modem_info);
 
-  virtual ~ModemManagerClassic();
+  ~ModemManagerClassic() override;
 
   // Called by our dbus proxy
   void OnDeviceAdded(const std::string &path);
@@ -139,7 +139,7 @@
                 const std::string &path,
                 ModemInfo *modem_info);
 
-  virtual ~ModemManager1();
+  ~ModemManager1() override;
 
  protected:
   void AddModem1(const std::string &path,
diff --git a/modem_manager_proxy.h b/modem_manager_proxy.h
index 0efb5fe..2a6fd8d 100644
--- a/modem_manager_proxy.h
+++ b/modem_manager_proxy.h
@@ -25,7 +25,7 @@
                     ModemManagerClassic *manager,
                     const std::string &path,
                     const std::string &service);
-  virtual ~ModemManagerProxy();
+  ~ModemManagerProxy() override;
 
   // Inherited from ModemManagerProxyInterface.
   virtual std::vector<DBus::Path> EnumerateDevices();
@@ -38,7 +38,7 @@
           ModemManagerClassic *manager,
           const std::string &path,
           const std::string &service);
-    virtual ~Proxy();
+    ~Proxy() override;
 
    private:
     // Signal callbacks inherited from ModemManager_proxy.
diff --git a/modem_proxy.h b/modem_proxy.h
index 46889c9..06103d4 100644
--- a/modem_proxy.h
+++ b/modem_proxy.h
@@ -22,7 +22,7 @@
   ModemProxy(DBus::Connection *connection,
              const std::string &path,
              const std::string &service);
-  virtual ~ModemProxy();
+  ~ModemProxy() override;
 
   // Inherited from ModemProxyInterface.
   virtual void Enable(bool enable, Error *error,
@@ -42,7 +42,7 @@
     Proxy(DBus::Connection *connection,
           const std::string &path,
           const std::string &service);
-    virtual ~Proxy();
+    ~Proxy() override;
 
     void set_state_changed_callback(
         const ModemStateChangedSignalCallback &callback);
diff --git a/modem_simple_proxy.h b/modem_simple_proxy.h
index 7a61024..798d306 100644
--- a/modem_simple_proxy.h
+++ b/modem_simple_proxy.h
@@ -22,7 +22,7 @@
   ModemSimpleProxy(DBus::Connection *connection,
                    const std::string &path,
                    const std::string &service);
-  virtual ~ModemSimpleProxy();
+  ~ModemSimpleProxy() override;
 
   // Inherited from ModemSimpleProxyInterface.
   virtual void GetModemStatus(Error *error,
@@ -40,7 +40,7 @@
     Proxy(DBus::Connection *connection,
           const std::string &path,
           const std::string &service);
-    virtual ~Proxy();
+    ~Proxy() override;
 
    private:
     // Signal callbacks inherited from ModemManager::Modem::Simple_proxy.
diff --git a/netlink_manager.cc b/netlink_manager.cc
index 9dbbbb7..9682d58 100644
--- a/netlink_manager.cc
+++ b/netlink_manager.cc
@@ -131,6 +131,8 @@
       sock_(NULL),
       time_(Time::GetInstance()) {}
 
+NetlinkManager::~NetlinkManager() {}
+
 NetlinkManager *NetlinkManager::GetInstance() {
   return g_netlink_manager.Pointer();
 }
diff --git a/netlink_manager.h b/netlink_manager.h
index 31cb8a0..c06f463 100644
--- a/netlink_manager.h
+++ b/netlink_manager.h
@@ -165,6 +165,8 @@
   // NetlinkManager is a singleton and this is the way to access it.
   static NetlinkManager *GetInstance();
 
+  virtual ~NetlinkManager();
+
   // Performs non-trivial object initialization of the NetlinkManager singleton.
   bool Init();
 
diff --git a/nice_mock_control.h b/nice_mock_control.h
index 59bf4fc..f2dd2fc 100644
--- a/nice_mock_control.h
+++ b/nice_mock_control.h
@@ -15,7 +15,7 @@
 class NiceMockControl : public ControlInterface {
  public:
   NiceMockControl();
-  virtual ~NiceMockControl();
+  ~NiceMockControl() override;
 
   // Each of these can be called once.  Ownership of the appropriate
   // interface pointer is given up upon call.
diff --git a/nl80211_message.h b/nl80211_message.h
index 7c907cc..e5f952e 100644
--- a/nl80211_message.h
+++ b/nl80211_message.h
@@ -26,7 +26,7 @@
 
   Nl80211Message(uint8_t command, const char *command_string)
       : GenericNetlinkMessage(nl80211_message_type_, command, command_string) {}
-  virtual ~Nl80211Message() {}
+  ~Nl80211Message() override {}
 
   // Gets the family_id / message_type for all Nl80211 messages.
   static uint16_t GetMessageType();
diff --git a/no_out_of_credits_detector.h b/no_out_of_credits_detector.h
index a6890ac..0d72baf 100644
--- a/no_out_of_credits_detector.h
+++ b/no_out_of_credits_detector.h
@@ -19,7 +19,7 @@
                          Metrics *metrics,
                          CellularService *service)
       : OutOfCreditsDetector(dispatcher, manager, metrics, service) {}
-  virtual ~NoOutOfCreditsDetector() {}
+  ~NoOutOfCreditsDetector() override {}
 
   // Resets the detector state.
   void ResetDetector() override {}
diff --git a/openvpn_driver.h b/openvpn_driver.h
index 8294ae2..09d8e83 100644
--- a/openvpn_driver.h
+++ b/openvpn_driver.h
@@ -53,7 +53,7 @@
                 Manager *manager,
                 DeviceInfo *device_info,
                 GLib *glib);
-  virtual ~OpenVPNDriver();
+  ~OpenVPNDriver() override;
 
   virtual void OnReconnecting(ReconnectReason reason);
 
diff --git a/power_manager.h b/power_manager.h
index 2fea585..a7d365a 100644
--- a/power_manager.h
+++ b/power_manager.h
@@ -47,7 +47,7 @@
   // ProxyFactory::GetInstance().  Use a fake for testing.
   // Note: |Start| should be called to initialize this object before using it.
   PowerManager(EventDispatcher *dispatcher, ProxyFactory *proxy_factory);
-  virtual ~PowerManager();
+  ~PowerManager() override;
 
   bool suspending() const { return suspending_; }
 
diff --git a/power_manager_proxy.h b/power_manager_proxy.h
index 0543564..ddc8b75 100644
--- a/power_manager_proxy.h
+++ b/power_manager_proxy.h
@@ -27,7 +27,7 @@
 
 class PowerManagerProxy : public PowerManagerProxyInterface {
  public:
-  virtual ~PowerManagerProxy();
+  ~PowerManagerProxy() override;
 
   // Inherited from PowerManagerProxyInterface.
   bool RegisterSuspendDelay(base::TimeDelta timeout,
@@ -46,7 +46,7 @@
    public:
     Proxy(PowerManagerProxyDelegate *delegate,
           DBus::Connection *connection);
-    virtual ~Proxy();
+    ~Proxy() override;
 
    private:
     // Signal callbacks inherited from org::chromium::PowerManager_proxy.
diff --git a/ppp_device.h b/ppp_device.h
index 560c9cf..391cc93 100644
--- a/ppp_device.h
+++ b/ppp_device.h
@@ -39,7 +39,7 @@
             Manager *manager,
             const std::string &link_name,
             int interface_index);
-  virtual ~PPPDevice();
+  ~PPPDevice() override;
 
   // Set IPConfig for this device, based on the dictionary of
   // configuration strings received from our PPP plugin.
diff --git a/profile_dbus_adaptor.h b/profile_dbus_adaptor.h
index 8d5075b..faea844 100644
--- a/profile_dbus_adaptor.h
+++ b/profile_dbus_adaptor.h
@@ -33,7 +33,7 @@
   static const char kPath[];
 
   ProfileDBusAdaptor(DBus::Connection *conn, Profile *profile);
-  virtual ~ProfileDBusAdaptor();
+  ~ProfileDBusAdaptor() override;
 
   // Implementation of ProfileAdaptorInterface.
   virtual const std::string &GetRpcIdentifier() { return path(); }
diff --git a/property_accessor.h b/property_accessor.h
index af9e942..f490079 100644
--- a/property_accessor.h
+++ b/property_accessor.h
@@ -49,7 +49,7 @@
       : property_(property), default_value_(*property) {
     DCHECK(property);
   }
-  virtual ~PropertyAccessor() {}
+  ~PropertyAccessor() override {}
 
   void Clear(Error *error) { Set(default_value_, error); }
   T Get(Error */*error*/) { return *property_; }
@@ -73,7 +73,7 @@
   explicit ConstPropertyAccessor(const T *property) : property_(property) {
     DCHECK(property);
   }
-  virtual ~ConstPropertyAccessor() {}
+  ~ConstPropertyAccessor() override {}
 
   void Clear(Error *error) {
     // TODO(quiche): check if this is the right error.
@@ -100,7 +100,7 @@
       : property_(property), default_value_(*property) {
     DCHECK(property);
   }
-  virtual ~WriteOnlyPropertyAccessor() {}
+  ~WriteOnlyPropertyAccessor() override {}
 
   void Clear(Error *error) { Set(default_value_, error); }
   T Get(Error *error) {
@@ -161,7 +161,7 @@
                  T(C::*getter)(Error *error),
                  bool(C::*setter)(const T &value, Error *error))
       : CustomAccessor(target, getter, setter, NULL) {}
-  virtual ~CustomAccessor() {}
+  ~CustomAccessor() override {}
 
   void Clear(Error *error) {
     if (clearer_) {
@@ -222,7 +222,7 @@
       default_value_ = *default_value;
     }
   }
-  virtual ~CustomWriteOnlyAccessor() {}
+  ~CustomWriteOnlyAccessor() override {}
 
   void Clear(Error *error) {
     if (clearer_) {
@@ -262,7 +262,7 @@
     DCHECK(target);
     DCHECK(getter);
   }
-  virtual ~CustomReadOnlyAccessor() {}
+  ~CustomReadOnlyAccessor() override {}
 
   void Clear(Error *error) {
     error->Populate(Error::kInvalidArguments, "Property is read-only");
@@ -309,7 +309,7 @@
     DCHECK(target);
     DCHECK(getter);
   }
-  virtual ~CustomMappedAccessor() {}
+  ~CustomMappedAccessor() override {}
 
   void Clear(Error *error) {
     (target_->*clearer_)(argument_, error);
diff --git a/property_observer.h b/property_observer.h
index 1cc5632..407ebf8 100644
--- a/property_observer.h
+++ b/property_observer.h
@@ -31,7 +31,7 @@
     Error unused_error;
     saved_value_ = accessor_->Get(&unused_error);
   }
-  virtual ~PropertyObserver() {}
+  ~PropertyObserver() override {}
 
   // Implements PropertyObserverInterface.  Compares the saved value with
   // what the Get() method of |accessor_| returns.  If the value has changed
diff --git a/property_store_unittest.h b/property_store_unittest.h
index 1e9ef6c..c258e4a 100644
--- a/property_store_unittest.h
+++ b/property_store_unittest.h
@@ -52,7 +52,7 @@
   static const ::DBus::Variant kUint64V;
 
   PropertyStoreTest();
-  virtual ~PropertyStoreTest();
+  ~PropertyStoreTest() override;
 
   virtual void SetUp();
   MOCK_METHOD1(TestCallback, void(const std::string &property_name));
diff --git a/protobuf_lite_streams.h b/protobuf_lite_streams.h
index 920234c..9e8f1a8 100644
--- a/protobuf_lite_streams.h
+++ b/protobuf_lite_streams.h
@@ -27,7 +27,7 @@
  public:
   // Takes ownership of |fd| and closes it when the object is deleted.
   explicit ProtobufLiteCopyingFileInputStream(int fd);
-  virtual ~ProtobufLiteCopyingFileInputStream();
+  ~ProtobufLiteCopyingFileInputStream() override;
   virtual int Read(void *buffer, int size);
   virtual int Skip(int count);
  private:
diff --git a/rpc_task_dbus_adaptor.h b/rpc_task_dbus_adaptor.h
index d5422ee..6d7d5ae 100644
--- a/rpc_task_dbus_adaptor.h
+++ b/rpc_task_dbus_adaptor.h
@@ -29,7 +29,7 @@
   static const char kPath[];
 
   RPCTaskDBusAdaptor(DBus::Connection *conn, RPCTask *task);
-  virtual ~RPCTaskDBusAdaptor();
+  ~RPCTaskDBusAdaptor() override;
 
   // Implementation of RPCTaskAdaptorInterface.
   virtual const std::string &GetRpcIdentifier();
diff --git a/service_dbus_adaptor.h b/service_dbus_adaptor.h
index 638bdb9..365ed32 100644
--- a/service_dbus_adaptor.h
+++ b/service_dbus_adaptor.h
@@ -31,7 +31,7 @@
   static const char kPath[];
 
   ServiceDBusAdaptor(DBus::Connection *conn, Service *service);
-  virtual ~ServiceDBusAdaptor();
+  ~ServiceDBusAdaptor() override;
 
   // Implementation of ServiceAdaptorInterface.
   virtual const std::string &GetRpcIdentifier() { return path(); }
diff --git a/service_under_test.h b/service_under_test.h
index bbfc092..fa06a47 100644
--- a/service_under_test.h
+++ b/service_under_test.h
@@ -29,7 +29,7 @@
                    EventDispatcher *dispatcher,
                    Metrics *metrics,
                    Manager *manager);
-  virtual ~ServiceUnderTest();
+  ~ServiceUnderTest() override;
 
   std::string GetRpcIdentifier() const override;
   std::string GetDeviceRpcId(Error *error) const override;
diff --git a/shill_test_config.h b/shill_test_config.h
index 8dee3b6..81ee8ea 100644
--- a/shill_test_config.h
+++ b/shill_test_config.h
@@ -16,7 +16,7 @@
 class TestConfig : public Config {
  public:
   TestConfig();
-  virtual ~TestConfig();
+  ~TestConfig() override;
 
   virtual std::string GetRunDirectory();
   virtual std::string GetStorageDirectory();
diff --git a/stub_storage.h b/stub_storage.h
index 2af2bce..1e3c74e 100644
--- a/stub_storage.h
+++ b/stub_storage.h
@@ -16,7 +16,7 @@
 // A stub implementation of StoreInterface.
 class StubStorage : public StoreInterface {
  public:
-  virtual ~StubStorage() {}
+  ~StubStorage() override {}
 
   bool Flush() override { return false; }
   std::set<std::string> GetGroups() const override { return {}; }
diff --git a/subscription_state_out_of_credits_detector.h b/subscription_state_out_of_credits_detector.h
index 31c7b2f..92f7449 100644
--- a/subscription_state_out_of_credits_detector.h
+++ b/subscription_state_out_of_credits_detector.h
@@ -16,7 +16,7 @@
                                         Manager *manager,
                                         Metrics *metrics,
                                         CellularService *service);
-  virtual ~SubscriptionStateOutOfCreditsDetector();
+  ~SubscriptionStateOutOfCreditsDetector() override;
 
   void ResetDetector() override {}
   bool IsDetecting() const override { return false; }
diff --git a/supplicant_bss_proxy.h b/supplicant_bss_proxy.h
index 8f7802c..6caf481 100644
--- a/supplicant_bss_proxy.h
+++ b/supplicant_bss_proxy.h
@@ -24,7 +24,7 @@
                      DBus::Connection *bus,
                      const ::DBus::Path &object_path,
                      const char *dbus_addr);
-  virtual ~SupplicantBSSProxy();
+  ~SupplicantBSSProxy() override;
 
  private:
   class Proxy : public fi::w1::wpa_supplicant1::BSS_proxy,
@@ -34,7 +34,7 @@
           DBus::Connection *bus,
           const ::DBus::Path &object_path,
           const char *dbus_addr);
-    virtual ~Proxy();
+    ~Proxy() override;
 
    private:
     // signal handlers called by dbus-c++, via
diff --git a/supplicant_interface_proxy.h b/supplicant_interface_proxy.h
index 9e41143..7a11c7f 100644
--- a/supplicant_interface_proxy.h
+++ b/supplicant_interface_proxy.h
@@ -30,7 +30,7 @@
                            DBus::Connection *bus,
                            const ::DBus::Path &object_path,
                            const char *dbus_addr);
-  virtual ~SupplicantInterfaceProxy();
+  ~SupplicantInterfaceProxy() override;
 
   virtual ::DBus::Path AddNetwork(
       const std::map<std::string, ::DBus::Variant> &args);
@@ -66,7 +66,7 @@
           DBus::Connection *bus,
           const ::DBus::Path &object_path,
           const char *dbus_addr);
-    virtual ~Proxy();
+    ~Proxy() override;
 
    private:
     // signal handlers called by dbus-c++, via
diff --git a/supplicant_network_proxy.h b/supplicant_network_proxy.h
index 72f09ae..ab0fc5a 100644
--- a/supplicant_network_proxy.h
+++ b/supplicant_network_proxy.h
@@ -24,7 +24,7 @@
   SupplicantNetworkProxy(DBus::Connection *bus,
                          const ::DBus::Path &object_path,
                          const char *dbus_addr);
-  virtual ~SupplicantNetworkProxy();
+  ~SupplicantNetworkProxy() override;
 
   virtual void SetEnabled(bool enabled);
 
@@ -35,7 +35,7 @@
     Proxy(DBus::Connection *bus,
           const ::DBus::Path &object_path,
           const char *dbus_addr);
-    virtual ~Proxy();
+    ~Proxy() override;
 
    private:
     // signal handlers called by dbus-c++, via
diff --git a/supplicant_process_proxy.h b/supplicant_process_proxy.h
index b2ef82e..91233b0 100644
--- a/supplicant_process_proxy.h
+++ b/supplicant_process_proxy.h
@@ -20,7 +20,7 @@
   SupplicantProcessProxy(DBus::Connection *bus,
                          const char *dbus_path,
                          const char *dbus_addr);
-  virtual ~SupplicantProcessProxy();
+  ~SupplicantProcessProxy() override;
 
   virtual ::DBus::Path CreateInterface(
       const std::map<std::string, ::DBus::Variant> &args);
@@ -34,7 +34,7 @@
     public ::DBus::ObjectProxy {
    public:
     Proxy(DBus::Connection *bus, const char *dbus_path, const char *dbus_addr);
-    virtual ~Proxy();
+    ~Proxy() override;
 
    private:
     // signal handlers called by dbus-c++, via
diff --git a/virtio_ethernet.h b/virtio_ethernet.h
index 6cdfda8..6bf245b 100644
--- a/virtio_ethernet.h
+++ b/virtio_ethernet.h
@@ -20,7 +20,7 @@
                  const std::string& link_name,
                  const std::string &address,
                  int interface_index);
-  virtual ~VirtioEthernet();
+  ~VirtioEthernet() override;
 
   virtual void Start(Error *error, const EnabledStateChangedCallback &callback);
 
diff --git a/vpn_provider.h b/vpn_provider.h
index 002bfc0..8840b6c 100644
--- a/vpn_provider.h
+++ b/vpn_provider.h
@@ -29,7 +29,7 @@
               EventDispatcher *dispatcher,
               Metrics *metrics,
               Manager *manager);
-  virtual ~VPNProvider();
+  ~VPNProvider() override;
 
   // Called by Manager as a part of the Provider interface.  The attributes
   // used for matching services for the VPN provider are the ProviderType,
diff --git a/vpn_service.h b/vpn_service.h
index 5f9a0b1..02c0870 100644
--- a/vpn_service.h
+++ b/vpn_service.h
@@ -25,7 +25,7 @@
              Metrics *metrics,
              Manager *manager,
              VPNDriver *driver);  // Takes ownership of |driver|.
-  virtual ~VPNService();
+  ~VPNService() override;
 
   // Inherited from Service.
   virtual void Connect(Error *error, const char *reason);
diff --git a/wifi.h b/wifi.h
index bfa7eb7..7798990 100644
--- a/wifi.h
+++ b/wifi.h
@@ -125,7 +125,7 @@
        const std::string &link,
        const std::string &address,
        int interface_index);
-  virtual ~WiFi();
+  ~WiFi() override;
 
   virtual void Start(Error *error, const EnabledStateChangedCallback &callback);
   virtual void Stop(Error *error, const EnabledStateChangedCallback &callback);
diff --git a/wifi_endpoint.h b/wifi_endpoint.h
index 7ace14d..816944e 100644
--- a/wifi_endpoint.h
+++ b/wifi_endpoint.h
@@ -50,7 +50,7 @@
                const WiFiRefPtr &device,
                const std::string &rpc_id,
                const std::map<std::string, ::DBus::Variant> &properties);
-  virtual ~WiFiEndpoint();
+  ~WiFiEndpoint() override;
 
   // Set up RPC channel. Broken out from the ctor, so that WiFi can
   // look over the Endpoint details before commiting to setting up
diff --git a/wifi_provider.h b/wifi_provider.h
index b0ecf97..ef2092e 100644
--- a/wifi_provider.h
+++ b/wifi_provider.h
@@ -56,7 +56,7 @@
                EventDispatcher *dispatcher,
                Metrics *metrics,
                Manager *manager);
-  virtual ~WiFiProvider();
+  ~WiFiProvider() override;
 
   // Called by Manager as a part of the Provider interface.  The attributes
   // used for matching services for the WiFi provider are the SSID, mode and
diff --git a/wimax.h b/wimax.h
index 04fca7e..05bef19 100644
--- a/wimax.h
+++ b/wimax.h
@@ -31,7 +31,7 @@
         int interface_index,
         const RpcIdentifier &path);
 
-  virtual ~WiMax();
+  ~WiMax() override;
 
   // Inherited from Device.
   virtual void Start(Error *error, const EnabledStateChangedCallback &callback);
diff --git a/wimax_device_proxy.h b/wimax_device_proxy.h
index e96fde8..5772d7f 100644
--- a/wimax_device_proxy.h
+++ b/wimax_device_proxy.h
@@ -20,7 +20,7 @@
   // Constructs a WiMaxManager.Device DBus object proxy at |path|.
   WiMaxDeviceProxy(DBus::Connection *connection,
                    const DBus::Path &path);
-  virtual ~WiMaxDeviceProxy();
+  ~WiMaxDeviceProxy() override;
 
   // Inherited from WiMaxDeviceProxyInterface.
   virtual void Enable(Error *error,
@@ -53,7 +53,7 @@
                 public DBus::ObjectProxy {
    public:
     Proxy(DBus::Connection *connection, const DBus::Path &path);
-    virtual ~Proxy();
+    ~Proxy() override;
 
     void set_networks_changed_callback(const NetworksChangedCallback &callback);
     void set_status_changed_callback(const StatusChangedCallback &callback);
diff --git a/wimax_manager_proxy.h b/wimax_manager_proxy.h
index 2364f92..a1e8536 100644
--- a/wimax_manager_proxy.h
+++ b/wimax_manager_proxy.h
@@ -18,7 +18,7 @@
 class WiMaxManagerProxy : public WiMaxManagerProxyInterface {
  public:
   explicit WiMaxManagerProxy(DBus::Connection *connection);
-  virtual ~WiMaxManagerProxy();
+  ~WiMaxManagerProxy() override;
 
   // Inherited from WiMaxManagerProxyInterface.
   virtual void set_devices_changed_callback(
@@ -30,7 +30,7 @@
                 public DBus::ObjectProxy {
    public:
     explicit Proxy(DBus::Connection *connection);
-    virtual ~Proxy();
+    ~Proxy() override;
 
     void set_devices_changed_callback(const DevicesChangedCallback &callback);
 
diff --git a/wimax_network_proxy.h b/wimax_network_proxy.h
index 30cd4a6..97ab178 100644
--- a/wimax_network_proxy.h
+++ b/wimax_network_proxy.h
@@ -19,7 +19,7 @@
   // Constructs a WiMaxManager.Network DBus object proxy at |path|.
   WiMaxNetworkProxy(DBus::Connection *connection,
                    const DBus::Path &path);
-  virtual ~WiMaxNetworkProxy();
+  ~WiMaxNetworkProxy() override;
 
   // Inherited from WiMaxNetwokProxyInterface.
   virtual RpcIdentifier path() const;
@@ -37,7 +37,7 @@
                 public DBus::ObjectProxy {
    public:
     Proxy(DBus::Connection *connection, const DBus::Path &path);
-    virtual ~Proxy();
+    ~Proxy() override;
 
     void set_signal_strength_changed_callback(
         const SignalStrengthChangedCallback &callback);
diff --git a/wimax_provider.h b/wimax_provider.h
index 630ff89..e687409 100644
--- a/wimax_provider.h
+++ b/wimax_provider.h
@@ -34,7 +34,7 @@
                 EventDispatcher *dispatcher,
                 Metrics *metrics,
                 Manager *manager);
-  virtual ~WiMaxProvider();
+  ~WiMaxProvider() override;
 
   // Called by Manager as a part of the Provider interface.  The attributes
   // used for matching services for the WiMax provider are the NetworkId,
diff --git a/wimax_service.h b/wimax_service.h
index 583b7f4..fbe85d7 100644
--- a/wimax_service.h
+++ b/wimax_service.h
@@ -28,7 +28,7 @@
                EventDispatcher *dispatcher,
                Metrics *metrics,
                Manager *manager);
-  virtual ~WiMaxService();
+  ~WiMaxService() override;
 
   // Returns the parameters to be passed to WiMaxManager.Device.Connect() when
   // connecting to the network associated with this service.