【java】使用Python建立和實現介面(interface)? - 程式人生
文章推薦指數: 80 %
我有兩(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爬蟲入門
新加入文章
延伸文章資訊
- 1Python :: 共同行為與is a
由於Python 是動態定型語言,若想透過變數操作物件的某個方法,只要確認該 ... 從方才的範例也可以看到,如果父類別定義了 __init__ ,子類別沒有定義 ...
- 2物件導向武功秘笈(2):招式篇— Python與Java的 ... - YC Note
抽象化:抽象類別(Abstract Class)、抽象方法(Abstract Method)和接口(Interface). 事實上,剛剛使用 Animal 的方法並不是很正確,我們將 Anima...
- 3[Python物件導向]Python多型(Polymorphism)實用教學
必須透過繼承(Inheritance)的類別來進行抽象方法(Abstract Method)的實作,如下範例:. from abc import ABC, abstractmethod ...
- 4【java】使用Python建立和實現介面(interface)? - 程式人生
我有兩(2)個問題:首先,如何使用Python建立FlyBehavior interface ?其次,如何使用Python對FlyWithWings類中的FlyBehavior介面進行 impl...
- 5[Python教學]物件導向-Class類的封裝/繼承/多型 - MAX行銷誌
在上一篇,我們解釋了Python 中一切皆為物件,和什麼是物件Object此篇將帶 ... Python 建立class,通常類名採用大寫(下面範例為Employee ),在類中 ...