抽象类
什么是抽象类?
- 与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()