== Why is this an issue? include::description.adoc[] === Noncompliant code example [source,text] ---- interface IVehicle { void Go(); } public class Submarine : IVehicle { public void Go() { /* ... */ } public void Submerge(int depth) { /* ... */ } } // ... public void Travel(Submarine transport) // Noncompliant; no class-specific features used { transport.Go(); } public void ExploreDepths(Submarine transport) // Compliant; class-specific feature used { var depth = 0; // ... transport.Submerge(depth); } ---- === Compliant solution [source,text] ---- interface IVehicle { void Go(); } public class Submarine : IVehicle { public void Go() { /* ... */ } public void Submerge(int depth) { /* ... */ } } // ... public void Travel(IVehicle transport) { transport.Go(); } public void ExploreDepths(Submarine transport) { var depth = 0; // ... transport.Submerge(depth); } ----