#封装:区分内外,使得外部不能直接看到内部具体信息,但内部可以正常看到
class People:
_star = "earth" #在类中以单下划线开头的属性,按照约定是作为隐藏的属性,为私有的,类的外部是不应该调用的
__country = "china" #在类中以双下划线开头的属性,Python会自动重命名为: _类名__属性名
def __init__(self,id,name,age,salary):
self.id = id
self.name = name
self.age = age
self.salary = salary
def get_id(self):
print("我是私有方法,找到的id是%s" %self.id)
def get_country(self): #为外部提供一个接口函数,用来调用被隐藏的属性
print(self.__country)
p1 = People("123123","sjy",25,10000000)
print(p1._star) #虽然约定是不被外部调用,但实际是可以调用的,这是个行为约定,而不是系统强制
print(p1._People__country) #以双下划线开头的属性,会自动重命名
"""
封装:区分内外,将对象的信息隐藏在对象内部,将其私有化,外部不能直接访问调用,而是通过类方法调用
但Python不像其他语言,它并没有实质性的隐藏,而是通过以双下划线开头命名属性名的方式,进行相对隐藏
"""
多态:不同对象使用相同方法实现不同结果
使用方式:通过继承基类的方法,子类调用这个方法,多个子类都可以继承基类方法,并都可以调用这个方法