2013-11-26 152 views
-1

說我有在Java中定義了以下兩種接口:斯卡拉實現兩個接口有相同的方法名

public interface A 
{ 
    public void test(); 
} 

public interface B 
{ 
    public void test(); 
} 

然後,我可以定義一個階類來實現這兩個接口?

class C extends A with B { 


} 

如何定義兩個test()方法?

回答

1

如果您需要實現這兩種方法,您需要具有不同的方法名稱,不同的方法參數列表或不同的類。從3個選項中選擇1個。在Scala和Java中都是如此。

(當然,從技術上可以使用某種形式的元編程的,但你可能不希望。)

0

你可以定義這個類,但它只有一個函數test()的實現。這在兩個接口都有相當常見的情況下很有用,例如getName()或getTimestamp()。名稱或時間戳記與創建的對象有關,而與接口實現無關。

+0

但我需要實現在這種情況下這兩種接口的方法。 – user79074

+0

這裏有一些更多: http://www.scala-lang.org/old/node/117.html http://blog.safaribooksonline.com/2013/05/30/traits-how-scala-tames-多重繼承/ –

+2

單個方法簽名的兩個實現是什麼意思?這是不可能的。 –

相關問題