diff --git a/src/mgmt/nfd/control-command.hpp b/src/mgmt/nfd/control-command.hpp
index 7544156..1db9f13 100644
--- a/src/mgmt/nfd/control-command.hpp
+++ b/src/mgmt/nfd/control-command.hpp
@@ -144,13 +144,13 @@
 public:
   FaceCreateCommand();
 
-  virtual void
+  void
   applyDefaultsToRequest(ControlParameters& parameters) const override;
 
-  virtual void
+  void
   validateRequest(const ControlParameters& parameters) const override;
 
-  virtual void
+  void
   validateResponse(const ControlParameters& parameters) const override;
 };
 
@@ -165,17 +165,17 @@
 public:
   FaceUpdateCommand();
 
-  virtual void
+  void
   applyDefaultsToRequest(ControlParameters& parameters) const override;
 
-  virtual void
+  void
   validateRequest(const ControlParameters& parameters) const override;
 
   /**
    * \note This can only validate ControlParameters in a success response.
    *       Failure responses should be validated with validateRequest.
    */
-  virtual void
+  void
   validateResponse(const ControlParameters& parameters) const override;
 };
 
@@ -190,10 +190,10 @@
 public:
   FaceDestroyCommand();
 
-  virtual void
+  void
   validateRequest(const ControlParameters& parameters) const override;
 
-  virtual void
+  void
   validateResponse(const ControlParameters& parameters) const override;
 };
 
@@ -205,10 +205,10 @@
 class FaceLocalControlCommand : public ControlCommand
 {
 public:
-  virtual void
+  void
   validateRequest(const ControlParameters& parameters) const override;
 
-  virtual void
+  void
   validateResponse(const ControlParameters& parameters) const override;
 
 protected:
@@ -251,10 +251,10 @@
 public:
   FibAddNextHopCommand();
 
-  virtual void
+  void
   applyDefaultsToRequest(ControlParameters& parameters) const override;
 
-  virtual void
+  void
   validateResponse(const ControlParameters& parameters) const override;
 };
 
@@ -269,10 +269,10 @@
 public:
   FibRemoveNextHopCommand();
 
-  virtual void
+  void
   applyDefaultsToRequest(ControlParameters& parameters) const override;
 
-  virtual void
+  void
   validateResponse(const ControlParameters& parameters) const override;
 };
 
@@ -299,10 +299,10 @@
 public:
   StrategyChoiceUnsetCommand();
 
-  virtual void
+  void
   validateRequest(const ControlParameters& parameters) const override;
 
-  virtual void
+  void
   validateResponse(const ControlParameters& parameters) const override;
 };
 
@@ -317,10 +317,10 @@
 public:
   RibRegisterCommand();
 
-  virtual void
+  void
   applyDefaultsToRequest(ControlParameters& parameters) const override;
 
-  virtual void
+  void
   validateResponse(const ControlParameters& parameters) const override;
 };
 
@@ -335,10 +335,10 @@
 public:
   RibUnregisterCommand();
 
-  virtual void
+  void
   applyDefaultsToRequest(ControlParameters& parameters) const override;
 
-  virtual void
+  void
   validateResponse(const ControlParameters& parameters) const override;
 };
 
diff --git a/src/mgmt/nfd/control-parameters.hpp b/src/mgmt/nfd/control-parameters.hpp
index d57c75d..a798459 100644
--- a/src/mgmt/nfd/control-parameters.hpp
+++ b/src/mgmt/nfd/control-parameters.hpp
@@ -99,10 +99,10 @@
   size_t
   wireEncode(EncodingImpl<TAG>& encoder) const;
 
-  virtual Block
+  Block
   wireEncode() const final;
 
-  virtual void
+  void
   wireDecode(const Block& wire) final;
 
 public: // getters & setters
diff --git a/src/mgmt/nfd/status-dataset.hpp b/src/mgmt/nfd/status-dataset.hpp
index 9eb43d4..09c1e14 100644
--- a/src/mgmt/nfd/status-dataset.hpp
+++ b/src/mgmt/nfd/status-dataset.hpp
@@ -170,7 +170,7 @@
   FaceQueryDataset(const FaceQueryFilter& filter);
 
 private:
-  virtual void
+  void
   addParameters(Name& name) const override;
 
 private:
