类的抽象类和归一化

本文详细解释了抽象类和接口的概念及其应用场景。通过具体例子展示了如何定义抽象类和接口,并探讨了它们在权限控制和降低使用难度方面的作用。

首先抽象类是一个特殊的类,它的特殊之处在于只能被继承,不能被实例化:

比如我们有香蕉的类,有苹果的类,有桃子的类,从这些类抽取相同的内容就是水果这个抽象的类,你吃水果时,要么是吃一个具体的香蕉,要么是吃一个具体的桃子……你永远无法吃到一个叫做水果的东西。抽象类一般是用来当做接口,为了实现某些相似的功能

1.什么是接口

  接口可以理解为自己给使用者来调用自己功能方法的入口。

2.为什么要用接口

(1).可以实现权限控制,比如可以通过接口做一下访问控制,可以允许或者拒绝调用者的一些操作。

(2).降低了使用者的使用难度,使用者只需要知道怎么调用即可,不需要知道里边的具体实现方法。

 

 

import abc
class Animal(metaclass=abc.ABCMeta):
    @abc.abstractmethod
    def run(self):
        pass
    @abc.abstractmethod
    def eat(self):
        pass

class People(Animal):
    def run(self):
        print('People is walking')

    def eat(self):
        print('People is eating ')


class People(Animal):
    def run(self):
        print('People is walking')

    # def eat(self):
    #     print('People is eating ')


class Pig(Animal):
    def run(self):
        print('Pig is walking')

    def eat(self):
        print('Pig is eating ')


class Dog(Animal):
    def run(self):
        print('Dog is walking')

    def eat(self):
        print('Dog is eating ')


peo1 = People()
pig1 = Pig()
dog1 = Dog()

分析总结:在上面的额代码中,Animal类就是抽象类,它是基于以下的三个类以及相似的功能而抽取相似形成的。抽象类是一个特殊的类,它的特殊之处在于只能被继承,不能被实例化:比如我们有香蕉的类,有苹果的类,有桃子的类,从这些类抽取相同的内容就是水果这个抽象的类,你吃水果时,要么是吃一个具体的香蕉,要么是吃一个具体的桃子……你永远无法吃到一个叫做水果的东西。同时为了当做接口使用,通过设定Animal类的meteclass以及对类的函数属性用装饰器修饰。继承了Animal的类中必须有这样的函数属性。而归一化的体显在于:不同的对象可以不用在意各自的方法时候交叉,因为它们的类中的函数属性是相同的。

转载于:https://www.cnblogs.com/z18271397173/p/9130459.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值