title: inheritance and polymorphism in swift
body: <p>I have the following problem:</p>
  
  <p>Class A - super class.</p>
  
  <p>Class A protocol:</p>
  
  <p>has method -> </p>
  
  <pre><code>func test(params: GeneralParams, completionBlock: GeneralCompletionBlock)
  </code></pre>
  
  <p>GeneralParams is super class and has the following 2 subclasses: BParams, CParams.</p>
  
  <p>now i have 2 more classes:</p>
  
  <p>class B: A, A protocol</p>
  
  <p>class C: A, A protocol</p>
  
  <p>I want class B, C to use test function but with different class for their params for class B i want to use BParams and different completion block and for C the same thing. i want to have the same method for both with different parameters and implementation for both.</p>
  
  <p>Whats the best solution for this situation?</p>