Python 2.7(google app engine)を使用しています
学習Python
して、私は言語がどのように継承を使用してポリモーフィズムを達成するかを理解しました。
INHERITANCE
-ベースのポリモーフィズムPYTHON
:
class pet:
number_of_legs = None
age = None
def sleep(self):
print "zzz"
def count_legs(self):
print "I have %s legs." % self.number_of_legs
return self.number_of_legs
class dog(pet):
def bark(self):
print "woof"
doug = dog()
doug.number_of_legs = 5;
print "Doug has %s legs." % doug.count_legs()
doug.bark()
私の質問はこれです:Pythonは緩く結合されたポリモーフィズムを持っていますか?つまり、interface
の代わりにを使用していますかinheritance
?たとえば、Javaでは、祖先関係のないクラスが同じインターフェースを実装する場合があります。次の例のHouseDog
とを参照してください。PetRock
INTERFACE
-ベースのポリモーフィズムJAVA
:
class Animal{
int legs;
double weight;
public int getLegs(){return this.legs;}
public double getWeight(){return this.weight}
}
interface Pet{
public int getNumberOfDresses();
public int getNumberOfToys();
}
class HouseDog extends Animal implements Pet{
//... implementation here
}
class PetRock implements Pet{
//a rock and a dog don't really have much in common.
//But both can be treated as pets
}
質問:
繰り返しますが、Pythonには、継承を使用せずにポリモーフィズムを実現するオブジェクト指向の方法がありますか?