我有一个抽象类 "person"
在这个类里面有一个eat吃饭的抽象方法
在这个 eat方法里 我不知道定几个方法参数 以为我根本不知道派生类到底会传多少个参数
只有在定义派生类的时候才知道!
那么请问这个抽象类的eat方法 怎么定义才好呢
用多选参数pram吗?
正解@Pualaul ,抽象类中方法定义怎么简单怎么搞,派生的时候根据需要重载,参数自定义。抽象类的作用才得以体现--抽象类的用途是提供多个派生类可共享的基类的公共定义。
应该使用方法重载吧,
一个操作肯定有输入输出值.如果你无法知道这个操作会有多少个参数,说明你抽象有问题
使用方法的重载
正解是:方法的重载。楼主多写几个eat方法便是,但根据抽象类的定义,你最好还是越少越好,不然就会失去抽象的意义。
如果你非要纠结于参数的话。
Eat(Food f);
实际你重写Eat也可以处理Food f
比如南方人
M1:Person{
public override Eat(Foo f){
if(f is F1){ ... }
else throw exception
}
}
南方人吃米,北方人吃面。他们对应的食物也是不一样的。
同意一楼的思路,在添加新类继承该eat方法, 此时在派生类中重写eat方法,这样就可以添加任意的参数
比如:基类写一个void eat(){}
派生类继承基类eat方法 void eat(Apple apple,Orange orange,...){}