多态与多态性

目录

一:多态与多态性

1. 什么是多态
水:液态水,固态水,气态水
动物:人,猪,狗,猫 ...
1.多态
imput abc
导入模块
抽象类:抽象类只能被继承,不能被实例化  
class Animal(metaclass=abc.ABCMeta):
用处 继承Animal的子类必须有speak,没有直接报错
    @abc.abstractmethod   该方法已经是抽象方法了
    def speak(self): pass   抽象方法里面不能有函数体 pass即可

    @abc.abstractmethod
    def login(self):pass

class People(Animal):
    def speak(self):
         print('嗷嗷嗷')
        pass
    def login(self):
        pass


class Pig(Animal):
    def speak(self):
        print('哼哼哼')


class Dog(Animal):
    def speak(self):
        print('汪汪汪')


obj = People()
obj.speak()
2.多态性
 父类限制子类的行为
class Animal():
    def speak(self):
        raise Exception("必须实现speak方法")  没有直接报错


class Pig():
    def speak(self):
        print('哼哼哼')


class Dog():
    def speak(self):
        print('汪汪汪')

class Txt():
    def speak(self):
        print('Txt')


obj = People()
obj.speak()

多态与多态性

上一篇:ES6-类


下一篇:【C#表达式树】 反射在表达式树中的应用 ListInitExpression