006---抽象类

抽象类

什么是抽象类?

  • 与Java一样。python也有抽象类的概念,但是需要借助模块实现
  • 抽象类是一个特殊的类,只能被继承,不能被实例化
  • 抽象类就是从多个类中抽取相同属性和方法。

为什么要有抽象类?

  • 用来规范子类。子类必须要有抽象类当中的方法
#! /usr/bin/env python
# -*- coding: utf-8 -*-
# __author__ = "ziya"
# Date: 2018-08-26
import abc

# 抽象类 规范子类 只能有抽象方法  只能被继承,不能实例化
class Animal(metaclass=abc.ABCMeta):
    @abc.abstractmethod  # 定义抽象方法,无需实现功能
    def run(self):
        """
        子类必须定义run()方法
        """
        pass

    @abc.abstractmethod  # 定义抽象方法,无需实现功能
    def eat(self):
        """
        子类必须定义eat()方法
        """
        pass


class Person(Animal):
    def run(self):
        print('在走')

    def eat(self):
        print('人吃饭')


class Pig(Animal):
    def run(self):
        print('在跑')

    def eat(self):
        print('猪吃草')


class Dog(Animal):
    def run(self):
        print('在跳')

    def eat(self):
        print('小狗吃肉')


class Cat(Animal):
    def run(self):
        pass

    def eat(self):
        pass


person1 = Person()
pig1 = Pig()
dog1 = Dog()

person1.run()
pig1.run()
dog1.run()
posted @ 2019-01-25 18:45  爬呀爬Xjm  阅读(141)  评论(0)    收藏  举报