【java】使用Python建立和實現介面(interface)? - 程式人生

文章推薦指數: 80 %
投票人數:10人

我有兩(2)個問題:首先,如何使用Python建立FlyBehavior interface ?其次,如何使用Python對FlyWithWings類中的FlyBehavior介面進行 implement ... 程式人生>java>使用Python建立和實現介面(interface)? 【java】使用Python建立和實現介面(interface)? 阿新••發佈:2020-12-17 我有兩(2)個問題:首先,如何使用Python建立FlyBehaviorinterface?其次,如何使用Python對FlyWithWings類中的FlyBehavior介面進行implement編碼(請參見下文)?我正在通過HeadFirst學習設計模式,並且想使用Python重寫以下Java類publicabstractclassDuck{ //Referencevariablesforthe //behaviorinterfacetypes FlyBehaviorflyBehavior; QuackBehaviorquackBehavior; publicDuck(){ } //Delegatetothebehaviorclass publicvoidperformFly(){ flyBehavior.fly(); } //Delegatetothebehaviorclass publicvoidperformQuack(){ quackBehavior.quack(); } } 這是所有飛行行為類實現的介面publicinterfaceFlyBehavior{ publicvoidfly(); } 這是做鴨子飛行行為的實現publicclassFlyWithWingsimplementsFlyBehavior{ publicvoidfly(){ System.out.println("I'mflying"); } } 到目前為止,這是我使用Python所擁有的。

以下是我的Python抽象Duck類importabc classDuck: __metaclass__=abc.ABCMeta FlyBehaviorFlyBehavior; QuackBehaviorQuackBehavior; @abc.abstractmethod def__init__(): return @abc.abstractmethod defperformFly(): return @abc.abstractmethod defperformQuack(): return 這是我在嘗試建立介面並嘗試實現介面時遇到的問題。

解決辦法 正如AlexTaylor所指出的那樣,Python是一種鴨子式語言-您無需指定事物的型別,只需使用它們即可。

但是,我認為他對Java程式碼的翻譯是錯誤的。

您無需在此處使用abc-只需使用常規類即可。

classDuck(object): #LikeinJava,youdon'tneedtowritea__init__ifit'sempty #Youdon'tneedtodeclarefieldseither-justusethem. defperformFly(self): self.flyBehaviour.fly() defperformQuack(self): self.quackBehaviour.quack() classFlyWithWings(object): deffly(self): print"I'mflying" #Example: d=Duck() d.flyBehaviour=FlyWithWings() d.performFly()#prints"I'mflying" Java中bool(boolean)值賦值的有效方法是什麼? «上一篇 SQLException:結果集已關閉下一篇» 相關推薦 使用Python建立和實現介面(interface)? 如何建立從實現介面(interface)的基類派生的例項列表? Java泛型建立擴充套件物件A和實現介面(interface)B的物件列表 父類和實現介面(interface)中具有相同名稱的靜態和非靜態方法 何時在PHP中使用擴充套件/抽象和實現/介面(interface) 如何使用構建器模式來構建動態實現介面(interface)的結構 擴充套件抽象類和實現介面(interface)的組合 變數包含擴充套件Enum和實現介面(interface)的類 如何對FragmentDialog和實現介面(interface)的Activity之間的互動進行單元測試 何時不使用C建立單獨的介面(interface)(.h)和實現(.c)? 搜尋 基礎教學 Mysql入門 Sql入門 Android入門 Docker入門 Go語言入門 Ruby程式入門 Python入門 Python進階 Django入門 Python爬蟲入門 新加入文章



請為這篇文章評分?