问题描述
我有三个基类,分别是DALHandlerBaseDALHandlerBaseOracleDALHandlerBaseSQLite里面的方法都一样,唯一的不一样就是针对不同数据库(分别是MSSQLOracleSQLite)现在我用继承的形式把三个不同的文件给继承起来。方便在业务层直接调用。但是在C#中,基类只能继承一个,并不能继承多个,有很多人说用接口来实现,但是用接口又不能直接实现我这三个文件里的方法。望大神们一起参与讨论.只有20分,虽然分数不高,但是已是我的全部了!望大家不要嫌分数低啊!
解决方案
解决方案二:
假定C#允许多重继承,又假定你的三各类中都有Query方法那么,你的新类中的Query到底该是哪个父类的Query的方法呢?显然你也很难取舍,过不要说C#了,所以不支持多重继承是没有遗憾的!
解决方案三:
你没有搞明白什么是继承、什么是组合。目前你还不能动手编写现在的任何代码,而应该学习“继承”。等你能够说明白了这三个类继承自什么,再来考虑代码问题。
解决方案四:
比如说“可口可乐是饮料,冰红茶是饮料,酸奶是饮料,这三种东西都是饮料”,这个说法包含了继承的概念。难道你说饮料就是这三种东西的组合、才叫做继承吗?那么还有第4种饮料、第5种饮料.........无穷无尽种类的饮料,既然你一辈子都说不明白什么是饮料,又你怎么立刻说明“可口可乐是饮料”?你对继承的理解就与正规概念正好相反了。这里不涉及多重继承问题。多重继承是说类似“可口可乐是饮料,同时也是一种传递乐观积极美好感觉的物质,同时也是廉价商品,同时也是独立品牌商品”,这是多重继承。如果你连一个父类/接口都说不出来,又怎么可能从4个以上的角度去说它?
解决方案五:
看不懂你想讨论什么用一套接口实现不同数据库的操作这种事早就实现了
时间: 2024-12-09 13:39:50