2017-07-04 88 views
-1

我希望你能幫助我這個C#的問題。我有一些類如:c#繼承需要簡單的解決方案

public abstract class Animal 
{ 
    public abstract void Walk(int param1,int param2); 
} 
public class Cat : Animal 
{ 
    public override void Walk(int param1,int param2){} 
} 
public class SmallCat : Cat 
{ 
    public override void Walk(int param1,int param2){} 
} 
public class Dog : Animal 
{ 
    public override void Walk(int param1,int param2){} 
} 

而且我有一個所有動物的控制器類。

someAnimal.Walk(a,b); 

我的問題是:我不想基類來了解移動所有細節,但我需要更多的參數或在行走功能不同動物不同的參數。 解決這個問題的好方法是什麼?

順便說一下,只有當不同的用戶(控制器)控制動物時才需要更改參數。

在閱讀您的評論之後,我決定使用一個簡單的UserController類,它具有所有用戶(更改參數)的詳細信息,並在將其發送給Animal類時將其發送給它。

+0

不太確定你的意思是「我不想讓基類知道所有關於移動的細節」 – Alex

+3

傳入一些包含所需細節的東西? '抽象無效步行(IWalkDetails walkDetails)' –

+0

嗯謝謝亞歷克斯。我想這不可能在不知道所有細節的情況下定義一個控制器。 –

回答

-3

我認爲每次調用方法時可能會改變步行的通用參數,可能是長度和速度。任何其他參數,特定於具體的實例,可以在施工時或通過增變器提供給實例。

+0

所以你需要一個新的實例,每一次你想走?這很可怕 –

+0

@CamiloTerevinto我真的不認爲你理解我的答案。 –

+0

實際上,這是一款我正在開發的遊戲,動物可以由不同的用戶控制,但這可能是一個很好的解決方案。用戶控制器可以在控制時告訴所有細節。謝謝。我不知道爲什麼這個答案得到很多倒票 –