`
feipigwang
  • 浏览: 744520 次
  • 性别: Icon_minigender_2
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

假言推理:为什么接口可以多重继承,而类不可以

阅读更多

假言推理是根据假言命题的逻辑性质进行的推理。分为充分条件假言推理,必要条件假言推理和充分必要条件假言推理三种。

充分条件假言推理是根据充分条件假言命题的逻辑性质进行的推理。

充分条件假言推理有两条规则:

n 规则1:肯定前件,就要肯定后件;否定前件,不能否定后件

n 规则2:否定后件,就要否定前件;肯定后件,不能肯定前件

必要条件假言推理是根据必要条件假言命题的逻辑性质进行的推理。

必要条件假言推理有两条规则:

n 规则1:否定前件,就要否定后件;肯定前件,不能肯定后件。

n 规则2:肯定后件,就要肯定前件;否定后件,不能否定前件。

充分必要条件假言推理是根据充分必要条件假言命题的逻辑性质进行的推理。

充分必要条件假言推理有两条规则:

n 规则1:肯定前件,就要肯定后件;肯定后件,就要肯定前件。

n 规则2:否定前件,就要否定后件;否定后件,就要否定前件。

现在我们称述本次需要推论的主题:在C#中,一个类不允许从多个类继承,但可以从多个接口继承。为什么类和接口在继承的时候,有不同的待遇呢?

我们在父类中定义的成员,有哪些将来在子类定义的时候有约束呢?如果你认为是那些定义了public、private、protected、internal的方法,那你就错了。父类对子类的定义有约束的是构造函数。

我们定义了如下类:Order

public class Order

{

public Order(string number)

{

}

}

然后我们定义Order的子类ShipOrder类时,首先就要满足对父类构造函数定义的认可

public class ShipOrder : Order

{

public ShipOrder(string number)

: base(number)

{

}

}

这个规则是C#的继承构造规则:

派生类的构造函数隐式调用基类的构造函数。在继承中,所有基类构造函数先于派生类构造函数获得调用,并按照这些类在类层次结构中出现的先后顺序调用。基类对象总是在任何派生类之前构建,因此,基类构造函数先于派生类构造函数获得执行。对基类的构造函数又是通过base的关键字进行显式的调用。

如果有以下的两个类:Order类和Invoice类

public class Order

{

public Order(string number)

{

}

}

public class Invoice

{

public Invoice(string number)

{

}

}

现在我试图设计一个Credence类从这两个类继承,就会遇到一个困惑:我怎么样才可以让这两个类的基类安全构造呢?在以下的代码中,你显然可以发现,我们无法同时指定为两个基类的构造函数作构造,因为base的关键字无法指定是调用具体哪个类的构造函数。

public class Credence : Order, Invoice

{

public Credence(string orderNumber,string invoiceNumber)

:base(orderNumber)

{

}

}

如果你认为这还不算问题的话,我们可以假设一种更复杂的关系,我们改变下Order和Invoice的关系,代码如下

public class Order

{

public Order(string number)

{

}

}

public class Invoice : Order

{

public Invoice(string number)

: base(number)

{

}

}

现在,可怜的Credence遇到了更困惑的问题,他应该先构造Order类还是Invoice类呢?所以我们得到一个结论,如果基类没有任何有参构造函数,那么子类就不需要考虑为基类传参数,仅需要隐式的构造父类即可。

那在C#中,有哪个数据类型可以肯定的没有构造函数呢?答案是单一的:接口。

充分条件假言推理有两条规则:

n 规则1:如果要构造子类,就必须先构造构造父类。

n 规则2:如果子类不需要显式的构造父类,则父类肯定没有有参构造函数。

必要条件假言推理是根据必要条件假言命题的逻辑性质进行的推理。

必要条件假言推理有两条规则:

n 规则1:如果父类都没有构造函数,子类不需要考虑父类的构造次序否定前件,就要否定后件;肯定前件,不能肯定后件。

n 规则2:肯定后件,就要肯定前件;否定后件,不能否定前件。

充分必要条件假言推理是根据充分必要条件假言命题的逻辑性质进行的推理。

充分必要条件假言推理有两条规则:

n 规则1:肯定前件,就要肯定后件;肯定后件,就要肯定前件。

n 规则2:否定前件,就要否定后件;否定后件,就要否定前件。

分享到:
评论

相关推荐

    人工智能复习资料

    2、假言推理(AB)A ,假言三段论(AB)(BC) 3、几种常用的归结策略: 、支持集策略、线形归结策略、输入归结策略、单元归结策略 4、在诸如走迷宫、下棋、八数码游戏等游戏中,常用到的一种人工...

    法逻之三假言判断及其推理PPT学习教案.pptx

    法逻之三假言判断及其推理PPT学习教案.pptx

    两类模糊推理算法的连续性和逼近性

    证明了在模糊假言推理和模糊拒取式推理情形,这两类算法都拥有连续性.指出三I算法在已知规则的前件和后件是正规集的条件下总是满足逼近性,而CRI算法只有当它满足还原性时才拥有逼近性.在满足逼近性的条件下,两类算法...

    人工智能自然演绎推理

    人工智能第三章3.3自然演绎推理ppt下载。详细的例子说明假言推理拒取式推理和假言三段论的区别

    人工智能导论

    安徽理工大学《人工智能》试卷库

    两步破解假言.docx

    两步破解假言

    谓词逻辑讲解

    人工智能方面的谓词逻辑详细讲解,包教包会。

    基于直觉模糊逻辑的近似推理方法

    针对直觉模糊逻辑及命题...该方法包括直觉模糊取式推理,直觉模糊拒式推理及直觉模糊假言推理,并推导了相关的推理合成运算公式.以具体算例验证和表明了所提出的推导方法的正确性和有效性,以及对方法进行验证的详细步骤.

    假言命题及其假命题.doc

    假言命题及其假命题.doc

    管理类联考逻辑-基础课程讲义.pdf

    MEM研究生考试逻辑基础课件,管理类联考通用课件 判断和推理概述;负判断及推理、联言判断及推理、选言判断及推理、假言判断及推理、性质判断及推理、模态判断及推理、概念及种类、类比推理

    离散数学模拟考试答案(四)1

    ② 前提引入 ③ ①②析取三段论 ④ 前提引入 ⑤ ③④假言推理 ⑥ 前提引入 ⑦ ⑤⑥假言推理

    18340082-邝金熙1

    现根据一阶谓词逻辑的推理形式(即离散数学课本第一章第六节中的格式)来证明 E 未婚:前提前提(1)(2) 的假言推理,(2) 的全称例化(1)(2) 的假言推理

    XX事业单位考试假言命题题目答题技巧.doc

    XX事业单位考试假言命题题目答题技巧.doc

    初中语文文摘历史�e启强假言索还宝弓

    初中语文文摘历史�e启强假言索还宝弓

    离散数学1.41

    1. 例子:如果你有当前的密码,你就可以登录上网 2. 定义:命题逻辑的推理是一系列命题,除最后一句外,前 1. 假言推理(分离规则)(Modus ponens

    基于直觉模糊逻辑的近似推理方法. (2006年)

    该方法包括直觉模糊取式推理,直觉模糊拒式推理及直觉模糊假言推理,并推导了相关的推理合成运算公式。以具体算例验证和表明了所提出的推导方法的正确性和有效性,以及对方法进行验证的详细步骤。

    人工智能练习题...doc

    11、假言推理(A(B)(A(( B ) ,假言三段论(A(B)((B(C)(( A(C )。 12、在诸如走迷宫、下棋、八数码游戏等游戏中,常用到的一种人工智能的核心技术称为 ( 图搜索 )技术,解这类问题时,常把在迷宫的位置、棋的...

    论文研究-直觉模糊近似推理中的可信度传播.pdf

    针对直觉模糊近似推理中的可信度传播,提出计算结论可信度的相关算法。...然后针对直觉模糊近似推理的三种基本模式(取式、拒式、假言式),给出了计算结论可信度值的相关公式,最后通过实例验证了算法的正确性。

    内燃机油基础油与添加剂优选中的推理方法 (2006年)

    以该类型添加剂中的每种添加剂性能指标形成的评判标准论域集合与选择该添加剂的模糊评判论域集合为基础,应用麦德姆尼方法推出模糊关系矩阵,用研制油的评判集合及模糊假言推理得到结论,在多个结论的情况下,对结论...

Global site tag (gtag.js) - Google Analytics