面向对象的特性(封装)

封装

‘’’
封装是将类的某些部分(某些属性或者方法)隐藏起来
对象不能直接使用隐藏起来的属性或者方法,具有保护功能

‘’’

class Girl():

def init(self,name,age):

self.name=name

self.__age=age

def show(self):

print(self.name,self.__age)

zs=Girl(‘张三’,19)

zs.show()

print(zs.__age) #类外边 对象不能直接使用

class Girl():

def init(self):

pass

def setAge(self,age):

if age<0 or age>95:

print(‘来自星星的你’)

self.age=0

else:

self.age=age

def getAge(self):

return self.age

zs=Girl()

zs.setAge(20)

print(zs.getAge())

zs.age=-9

print(zs.getAge())

class Girl():

def init(self,name,age):

self.name=name

self.__age=age

def setAge(self,age):

if age<0 or age>95:

print(‘来自星星的你’)

self.__age=18

else:

self.__age=age

def getAge(self):

return self.__age

zs=Girl(‘张三’,20)

zs.setAge(21)

print(zs.getAge())

print(zs.dict)

zs.__age=99

print(zs.dict)

class A():

def init(self,age):

self.__age=19

def setAge(self,age):

self.__age=age

def str(self):

return str(self.__age)

a=A(1)

a.__age=100

print(a.dict)

print(a._A__age)

a._A__age=99

print(a.dict)

class Phone():

def test(self):

print(‘test1’)

def __test1(self):

print(‘test1’)

x=Phone()

x.test()

x.__test1

中间界

class Phone():

def __phone(self):

print(“正在拨打电话”)

def phone(self,m):

if m>30:

self.__phone()

else:

print(‘请先给你的手机缴费30块 再来打电话’)

x=Phone()

x.phone(38)

‘’’
私有化封装后的限制
类中 可以访问
类外/对象外 不能访问
子类/子类对象 不能访问

‘’’

‘’’
继承的作用是提高代码的重用率

‘’’

class Cat():

def init(self,name,age,sex):

self.name=name

self.age=age

self.sex=sex

def jiao(self):

print(‘叫’)

def eat(self):

print(‘吃’)

def climb(self):

print(‘爬’)

class Dog():

def init(self,name,age,sex):

self.name=name

self.age=age

self.sex=sex

def jiao(self):

print(‘叫’)

def eat(self):

print(‘吃’)

def swimming(self):

print(‘游泳’)

a=Cat(‘加菲猫’,2,‘母’)

a.climb()

-----------

class Animal(): #父类 cat dog 子类

def init(self,name,age,sex):

self.name=name

self.age=age

self.sex=sex

def jiao(self):

print(‘叫’)

def eat(self):

print(‘吃’)

class Cat(Animal):

def climb(self):

print(‘爬’)

class Dog(Animal):

def swimming(self):

print(‘游泳’)

a=Cat(‘加菲猫’,2,‘母’)

# a是类的实例化

a.eat()

a.climb()

b=Dog(‘金毛’,3,‘公’)

b.eat()

b.swimming()

print(Cat.bases)

print(Dog.bases)

print(Animal.bases)

‘’’
如果一个类没有父类 那么它就默认继承 object类
‘’’

‘’’
方法的覆写:子类中定义了和父类中相同的方法函数def,我们叫做方法的覆写
实例对象调用次方法的时候就会调用自己类中的方法了
也叫 重写 复写 重载

‘’’

class A():

def hehe(self):

print(‘A,呵呵’)

class B(A):

def hehe(self):

print(‘B,呵呵’)

a=A()

b=B()

a.hehe()

b.hehe()

super()

‘’’
super()
子类和父类有相同的方法 如果子类想调用父类的方法

‘’’

class Animal():

def init(self,name,age):

self.name=name

self.age=age

class Cat(Animal):

def init(self,name,age,speed):

self.speed=speed

super().init(name,age)

def jiao(self):

print(‘喵喵%d’%self.speed)

class Dog(Animal):

def init(self,name,age,height):

self.height=height

super().init(name,age)

def jiao(self):

print(‘汪汪%.2f’%self.height)

a=Cat(‘波斯’,3,233)

d=Dog(‘京巴’,4,1.78)

a.jiao()

d.jiao()

super()

class A():

num=3

__num1 = 2

def init(self,x,y):

self.x=x

self.y=y

class B(A):

num=10

def init(self,x,y,z):

self.z=z

super().init(x,y)

b=B(1,2,3)

print(b.x)

print(B.num)

print(A.num)

print(super(B,b).num)

class A():

def t1(self):

print(‘A:t1’)

class B():

def t2(self):

print(‘A:t2’)

class C(A,B):

def t3(self):

print(‘A:t3’)

c=C()

c.t1()

c.t2()

c.t3()

class A():

def tx(self):

print(‘A:t1’)

class B():

def tx(self):

print(‘B:t2’)

class C(B,A): # 重写 优先使用B

def t(self):

print(‘C:t3’)

c=C()

c.t()

c.tx()

class A():

def func(self):

print(‘A开始’)

print(‘A结束’)

class B(A):

def func(self):

print(‘B开始’)

super().func()

print(‘B结束’)

class C(A):

def func(self):

print(‘C开始’)

super().func()

print(‘C结束’)

class D(B,C):

def func(self):

print(‘D开始’)

super().func()

print(‘D结束’)

d=D()

print(d.func())

class A():
def init(self):
print(‘A开始’)
print(‘A结束’)
class B(A):
def init(self):
print(‘B开始’)
super().init()
print(‘B结束’)
class C(A):
def init(self):
print(‘C开始’)
super().init()
print(‘C结束’)
class D(B,C):
def init(self):
print(‘D开始’)
super().init()
print(‘D结束’)
d=D()
print(D.mro())

class Dog():

def jiao(self):

print(‘汪汪’)

class Cat():

def jiao(self):

print(‘喵喵’)

class Pig():

def jiao(self):

print(‘哼哼’)

def honghong(a):

a.jiao()

d=Dog()

c=Cat()

p=Pig()

honghong(d)

honghong©

honghong§

class Ali():

def pay(self,money):

print(‘阿里支付:’,money)

class WeiXin():

def pay(self,money):

print(‘微信支付:’,money)

class Person():

def consume(self,pay,money):

pay.pay(money)

ali=Ali()

weixin=WeiXin()

zs=Person()

zs.consume(ali,100)

zs.consume(weixin,200)

class A():

def init(self):

print(‘A’)

super().init()

class B():

def init(self):

print(‘B’)

super().init()

class C(B,A):

def init(self):

print(‘C’)

super().init()

c=C()

class A():

def init(self,name,age):

self.name=name

self.__age=age

a=A(‘张三’,20)

print(a.dict)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值