1.抽象类
如果大家学过java语言的话,那么一定对抽象类不陌生。同样作为面向对象的语言,Python也有抽象类。
1.1什么是抽象类?
如果说,类是对一堆对象共同内容的抽取,那么抽象类就是对一堆类共同内容的抽取,包括:属性和方法。
1.2抽象类的特点
(1)抽象类必须包含一个或多个抽象方法,也可以包含普通方法。
(2)抽象类的抽象方法,在抽象类中并不作实现。
(3)抽象类不能被实例化。
(4)抽象类的子类要想进行实例化,必须先实现抽象父类中的所有抽象方法!!!!!!!!!!!!!
1.3普通父类的示例
# coding:utf-8
# 不是抽象类,是一个普通父类
class Parent(object):
# 构造方法
def __init__(self, sex, surname, job):
self.sex = sex
self.surname = surname
self.job = job
# 已经实现的普通方法
def run(self):
print("running...")
def say(self):
print("saying...")
def is_adult(self):
print("True")
# 未实现的普通方法
def hobby(self):
pass
# 子类
class Son(Parent):
# 重写
def is_adult(self):
print("False")
# 实例化
s = Son(sex="male", surname="Zhang", job="student")
s.is_adult()
s.hobby()
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
1.4抽象父类的示例
#coding:utf-8
# 从abc库中导入ABC, abstractmethod模块
from abc import ABC, abstractmethod
# 抽象父类
class Parent(ABC):
# 构造方法
def __init__(self, sex, surname, job):
self.sex = sex
self.surname = surname
self.job = job
# 已经实现的普通方法
def run(self):
print("running...")
def say(self):
print("saying...")
def is_adult(self):
print("True")
# 抽象方法
@abstractmethod
def hobby(self):
pass
# 子类
class Son(Parent):
# 重写
def is_adult(self):
print("False")
# 实例化
s = Son(sex="male", surname="Zhang", job="student")
s.is_adult()
s.hobby()
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
1.5正确打开方式!!!
#coding:utf-8
# 从abc库中导入ABC, abstractmethod模块
from abc import ABC, abstractmethod
# 抽象父类
class Parent(ABC):
# 构造方法
def __init__(self, sex, surname, job):
self.sex = sex
self.surname = surname
self.job = job
# 已经实现的普通方法
def run(self):
print("running...")
def say(self):
print("saying...")
def is_adult(self):
print("True")
# 抽象方法
@abstractmethod
def hobby(self):
pass
# 子类
class Son(Parent):
# 重写
def is_adult(self):
print("False")
# 实现抽象父类的抽象方法
def hobby(self):
print("basketball")
# 实例化
s = Son(sex="male", surname="Zhang", job="student")
s.is_adult()
s.hobby()
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41