面向对象学习

类的语法

#类的语法

class Dog(object):
    print("Hello ,I am a dog!")

d = Dog()

#d是类Dog的实例化对象
#实例化就是以Dog类为模板,在内存里开放一块空间,存上数据,赋值成一个变量名

还需要给狗狗添加名字和品种,上面的代码需要修改

class Dog(object):
    def __init__(self,name,type): #构造方法
        self.name = name
        self.type = type

    def sayhi(self):
        print("我是%s,是一只%s"%(self.name,self.type))

d = Dog("大黄","中华田园犬")
d.sayhi()

#在创建d这个Dog实例时,__init__()方法自动执行,对d进行初始化,创建d的时候需要name和type两个参数

面向对象的特性:

封装

封装最好理解了。封装是面向对象的特征之一,是对象和类概念的主要特性。
封装,也就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏。

 

继承

class Schoolmember(object):
    def __init__(self,name,age):
        self.name = name
        self.age = age

    def talk(self):
        print(self.name,self.age)


class Teacher(Schoolmember):
    def __init__(self,name,age,salary,course):
        super(Teacher,self).__init__(name,age)
        self.salary = salary
        self.course = course

    def talk(self):
        print(self.name,self.age,self.salary,self.course)

class Student(Schoolmember):
    def __init__(self,name,age,course,classes):
        super(Student,self).__init__(name,age)
        self.course = course
        self.classes = classes

    def talk(self):
            print(self.name,self.age,self.classes,self.course)


t1 = Teacher("han",32,1000,"语文")
s1 = Student("wanzi",1,"语文","一班")

t1.talk()
s1.talk()

多态

实现一种调用方式,多种功能

class Animal(object):
    def __init__(self,name):
        self.name = name

    def talk(self):
        pass


class Cat(Animal):
    def talk(self):
        print("%s 喵喵喵!"%self.name)

class Dog(Animal):
    def talk(self):
        print("%s 汪汪汪!"%self.name)

def func(obj):
    obj.talk()

c1 = Cat("蘑菇")
d1 = Dog("大黄")

func(c1)
func(d1)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

posted @ 2019-11-06 15:35  goldtree358  阅读(111)  评论(0)    收藏  举报