目录
本文主要用代码实例加概念的方式呈现!
一、封装
选择小汽车和客车为对象,使用类实现它们的属性和方法(汽车的重量属性,驾驶的方法),并打印属性
1、封装的概念
在程序设计中,封装(Encapsulation)是对具体对象的一种抽象,即将某些部分隐藏起来,在程序外部看不到,其含义是其他程序无法调用。
要了解封装,离不开“私有化”,就是将类或者是函数中的某些属性限制在某个区域之内,外部无法调用。
2、代码实例
代码模块:
class Vehicle():
#构造方法,实例化定义的车的属性参数
def __init__(self,name,weight,drive):
self.name=name
self.weight=weight
self.drive=drive
#定义一个输出函数的方法,直接调用将属性打印到控制台
def print(self):
print("{}承重{},驾驶方式为{}".format(self.name, self.weight, self.drive))
#创建Vehicle类的第一个对象并打印出来
vehicle1=Vehicle("小汽车","100kg","电动驾驶")
vehicle1.print()
#创建Vehicle类的第一个对象并打印出来
vehicle2=Vehicle("客车","300kg","耗油驾驶")
vehicle2.print()
输出样例:
小汽车承重100kg,驾驶方式为电动驾驶
客车承重300kg,驾驶方式为耗油驾驶
二、继承
例子:对第继承所给的例子问题改写:继承客车的属性和方法,改造为公交车,输入的名字为:“东风路28路公交车”,并打印(也包括属性和驾驶的方法)
1、继承的概念
继承允许我们定义继承另一个类的所有方法和属性的类。
父类是继承的类,也称为基类。
子类是从另一个类继承的类,也称为派生类。
2、代码实例
代码模块:
#客车
#在此处作为父类
class Coach(object):
# 构造方法,定义车的名字、重量、驾驶方法这三个属性传参
def __init__(self,name,weight,drive):
self.name = name
self.weight = weight
self.drive = drive
def print(self):
print("{}承重{},驾驶方式为{}".format(self.name, self.weight, self.drive))
#公交车,在此为子类
from Coach import Coach
class Bus(Coach):
def __init__(self,name,weight,drive):
# 继承父类Coach的方法
super(Bus,self).__init__(name,weight,drive)
b1=Coach("东风路28路公交车","500kg","无人驾驶")
b1.print()
输出样例:
东风路28路公交车承重500kg,驾驶方式为无人驾驶
三、多态
例子:使用多态实现28路、906路、B32路公交车的驾驶方法并打印使用多态实现28路、906路、B32路公交车的驾驶方法并打印
1、多态的理解
—种事物的多种体现形式,函数的重写其实就是多态的一种体现。
在Python中,多态指的是父类的引用指向子类的对象。
2、代码实例
代码模块:
#客车,作为公交车们继承的父类
class Coach(object):
# 构造方法,定义车的名字、重量、驾驶方法这三个属性传参
def __init__(self,name,weight,drive):
self.name = name
self.weight = weight
self.drive = drive
def print(self):
print("{}承重{},驾驶方式为{}".format(self.name, self.weight, self.drive))
#公交车子类继承类
from Coach import Coach
class Bus(Coach):
def __init__(self,name,weight,drive):
# 继承父类Vehicle的传参方法
super(Bus,self).__init__(name,weight,drive)
#多态的实现
from Coach import Coach
b1=Coach("东风路28路公交车","500kg","无人驾驶")
b1.print()
b2=Coach("东风路906路公交车","500kg","无人驾驶")
b2.print()
b3=Coach("东风路B32路公交车","500kg","无人驾驶")
b3.print()
输出样例:
东风路28路公交车承重500kg,驾驶方式为无人驾驶
东风路906路公交车承重500kg,驾驶方式为无人驾驶
东风路B32路公交车承重500kg,驾驶方式为无人驾驶