python基础——类(面向对象的特征)

面向对象的特征    封装   继承   多态
   封装  提高程序的安全性
   继承 提高代码的复用性

多态 提高程序的可扩展性和可维护性

封装:提高程序的安全性,

1.若不想外接程序进行访问里面的属性,这时可以在 属性名前面加上'__'

2.如果想访问其属性但  属性属于私有  这是我们可以通过  _类名__方法名  进行访问

class car:
    def __init__(self,brand):
        self.__brand=brand
    def __start__(self):
        print('开始开车')
c=car('宝马')
# c.__brand   报错
c.__start__()

 

继承:防止代码冗余,提高代码的复用性

1.在python中类支持多继承

2.在继承的子类中   如果需要添加属性  这时就需要重写__init__函数(构造函数),但注意在重写__init__函数是要调用父类的构造函数   super().__init__()

3.方法的重写:如果对子类进行方法重写,在创建子实体类时,方法以子类的方法为准

#python支持多继承,在定义子类时,必须在其构造函数中调用父类的构造函数
class Person(object):
    def __init__(self,name,age):
        self.name=name
        self.age=age
    def info(self):
        print('姓名:{0},年龄:{1}'.format(self.name,self.age))
#定义子类
class Student(Person):
    def __init__(self,name,age,score):
        super().__init__(name,age)
        self.score=score

class Teacher(Person):
    def __init__(self,name,age,jiaolin):
        super().__init__(name,age)
        self.jiaolin=jiaolin
    def info(self):#重写方法
        super().info()
        print('教龄:{0}'.format(self.jiaolin))
#         print('姓名:{0},年龄:{1},教龄:{2}'.format(self.name,self.age,self.jiaolin))

#测试
stu=Student('Jack','20','1001')
stu.info()
tea=Teacher('Tom','36','6')
tea.info()

多态: 提高程序的可扩展性和可维护性
1.静态语言(java)#继承   方法重写     父类引用指向子类对象
(Parent类有方法a,ChildA childB都有方法a, 一个逻辑在调Parent类型的a方法时,传入ChildA实例和ChildB实例都是可以运行的,这称为Java的多态机制。 即父类引用指向子类对象在调用同一方法时有着不同的表现形式)

2.动态语言(例如python)在python中  多态的概念在于     只关心行为而不用关心是谁的子类,

###########多态
class A:
    def eat(self):
        print("吃饭")
class B(A):
    def eat(self):
        print("狗吃肉")
class C(A):
    def eat(self):
        print("猫吃鱼")
class D:
    def eat(self):
        print("人吃五谷杂粮")

def fun(obj):
    obj.eat()

fun(C())
fun(D())
fun(A())

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值