我有3节课。他们有所有相似的整数,方法等......
class Country{
int a,b;
public:
Country();
void doSomething();
:
:
}
class Military : public Country {
public:
Power();
void doAnother();
void doAnother2();
:
:
}
class Technology : public Military{
public:
Technology();
void doAnother3();
:
:
}
假设这种继承适合我的解决方案。但是正如你所看到的,当我从 Country 创建 Military 时,它们之间在逻辑上没有关系。我的意思是,军队不是一个国家。同样对于来自国家的技术,问题也是一样的。技术不是军队,也不是国家。
无论如何,这个解决方案对我来说没问题,它缩短了我的代码,但是如果我这样做,我是否背叛了面向对象的编程哲学?是矛盾的吗?