楼主:
TKB5566 (我们的元首阿道夫希特勒)
2023-05-01 21:15:57接口第一个功能,
大家都说是可避免多重继承,那么首先要回答,为何多重继承在Java是必须避免的呢?
若是现有A、B、C三个类别,然后这三个类别关系是:C is a A;C is also a B。
那么万一A、B类别有一模一样名称的方法,C类别要继承的是哪个方法呢??
这样就不能确定了,所以这是Java必须避免多重继承的原因。
而又为何接口可以避免掉多重继承这个问题呢?接口不是可以被多重实作,万一某类别
多重实作不同接口,而不同接口又有相同名称的方法呢??
不同接口若有相同名称的方法,在Java中会被当作是拥有相同功能、行为之方法。
因为接口内定义的方法,本来就是用一种名称去对应一种行为的,
例如swim就只会是游泳,不会是别的行为;run就只会是跑,不会是别的行为;
attack就只会是攻击,也不会是别的行为。
既然这样,若不同接口拥有相同名称之方法,那就会被Java认为是相同的方法,
而既然方法都一样,那类别实作接口的方法时,实作一个就好了,因为都是一样的方法。
所以,若是多重实作接口的类别遇到需实作相同名称之方法,实作其中一个方法即可。
因此,接口透过这个“相同名称就是相同行为,实作一遍就好”的方式,避开了
多重继承会出现的问题,也就是说接口确实是可以取代多重继承的。