首页 新闻 赞助 找找看

问一个抽象类的问题!

0
悬赏园豆:5 [已解决问题] 解决于 2016-04-26 16:36

我有一个抽象类 "person"

在这个类里面有一个eat吃饭的抽象方法

在这个 eat方法里 我不知道定几个方法参数 以为我根本不知道派生类到底会传多少个参数

只有在定义派生类的时候才知道!

那么请问这个抽象类的eat方法 怎么定义才好呢

用多选参数pram吗?

c#
狂扁小朋友的主页 狂扁小朋友 | 初学一级 | 园豆:10
提问于:2015-08-01 18:17
< >
分享
最佳答案
0

正解@Pualaul  ,抽象类中方法定义怎么简单怎么搞,派生的时候根据需要重载,参数自定义。抽象类的作用才得以体现--抽象类的用途是提供多个派生类可共享的基类的公共定义。

收获园豆:5
BetterCoder | 初学一级 |园豆:45 | 2015-12-10 10:53
其他回答(6)
0

应该使用方法重载吧, 

明Lam | 园豆:615 (小虾三级) | 2015-08-01 18:28
0

一个操作肯定有输入输出值.如果你无法知道这个操作会有多少个参数,说明你抽象有问题

吴瑞祥 | 园豆:29449 (高人七级) | 2015-08-02 07:56
0

使用方法的重载

dotnet平台开发者 | 园豆:17 (初学一级) | 2015-08-02 10:49
0

正解是:方法的重载。楼主多写几个eat方法便是,但根据抽象类的定义,你最好还是越少越好,不然就会失去抽象的意义。

易猜 | 园豆:136 (初学一级) | 2015-08-02 13:51
0

如果你非要纠结于参数的话。

Eat(Food f);

实际你重写Eat也可以处理Food f

比如南方人

M1:Person{

public override Eat(Foo f){

  if(f is F1){ ... }

  else throw exception

}

}

 

南方人吃米,北方人吃面。他们对应的食物也是不一样的。

gw2010 | 园豆:1487 (小虾三级) | 2015-08-03 13:58
0

同意一楼的思路,在添加新类继承该eat方法, 此时在派生类中重写eat方法,这样就可以添加任意的参数

比如:基类写一个void eat(){}

派生类继承基类eat方法 void eat(Apple apple,Orange orange,...){}

PaulpauL | 园豆:199 (初学一级) | 2015-08-15 22:38
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册