python

关注公众号 jb51net

关闭
首页 > 脚本专栏 > python > Python面向对象封装继承和多态

Python面向对象封装继承和多态示例讲解

作者:互联网老辛

这篇文章给大家介绍了python面向对象的三大特征:封装,继承,多态的相关知识,通过实例代码讲解的非常详细,感兴趣的朋友跟随小编一起看看吧

面向对象的三大特征:封装,继承,多态

1.封装: 提高程序的安全性

2.继承: 提高代码的复用性

3.提高程序的可拓展性和可 维护性。

1. 封装

我们来看看私有方式的使用:

# 作者:互联网老辛
# 开发时间:2021/4/4/0004 22:11
class Student:
    def __init__(self,name,age):
        self.name=name
        self.__age=age

    def show(self):
        print(self.name,self.__age)

laoxin=Student('互联网老辛',38)
laoxin.show()
print(laoxin.name)
print(laoxin.__age)

在这里插入图片描述

私有属性如何被访问呢?
可以通过下面的形式来访问

在这里插入图片描述

print(laoxin.Student_ _ age)的形式进行访问

但一般情况下,我们看到私有方法,就尽量不要访问了。

2. 继承

语法格式:
class 子类类名(父类1,父类2)
pass

# 作者:互联网老辛
# 开发时间:2021/4/4/0004 22:11
class Person(object):
    def __init__(self,name,age):
        self.name=name
        self.age=age
    def info(self):
        print(self.name,self.age)

class Student(Person):
    def __init__(self,name,age,sut_no):
        super().__init__(name,age)
        self.sut_no=sut_no

class Teacher(Person):
    def __init__(self,name,age,teachofyear):
        super(Teacher, self).__init__(name,age)
        self.teachofyear=teachofyear

stu=Student('互联网老辛',40,1001)
teacher=Teacher('高胜寒',38,10)

stu.info()
teacher.info()

在Python中还可以支持多继承

比如校长,既能集成person类,又能继承teacher类。

多态的实现

多态就是具有多种形态,意思是,即使不知道一个变量所引用的对象到底是什么类型,仍然可以通过这个变量调用方法,在运行过程中根据变量所引用的对象类型,动态的决定调用哪个对象中的方法。

# 作者:互联网老辛
# 开发时间:2021/4/4/0004 22:11
class Animal(object):
    def eat(self):
        print("动物需要吃东西")
class Dog(Animal):
    def eat(self):
        print('狗吃骨头')  #重写方法

class Cat(Animal):
    def eat(self):
        print('猫吃鱼')

class Person:  #没有集成任何类
    def eat(self):
        print('人吃植物')

def fun(obj):
    obj.eat()

fun(Cat())
fun(Dog())
fun(Animal())

fun(Person()) #但是他也能调用方法

原因:
Python是一种动态语言,静态语言要想实现多态,必须明确继承,然后才能使用,而动态语言只关心是否具有这个方法,关于类不管。

到此这篇关于面向对象的封装,继承和多态的文章就介绍到这了,更多相关面向对象的封装,继承和多态内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文