python_面向对象——继承
1.继承
class Animal:
def __init__(self,name,age,sex):
self.name = name
self.age = age
self.sex = sex def eat(self):
print('{}正在吃东西~'.format(self.name))
# 继承(Animal)类
class Person(Animal):
def talk(self):
print('子类独有的方法!')
# 子类可以使用父类中的方法
p = Person('yhf',23,'女')
p.eat()

子类也可以继承父类的属性:
class Animal:
a_type = '动物'
def __init__(self,name,age,sex):
self.name = name
self.age = age
self.sex = sex def eat(self):
print('{}正在吃东西~'.format(self.name))
# 继承(Animal)类
class Person(Animal):
def talk(self):
print('独有的方法!') p = Person('yhf',23,'女')
# 子类也可以继承父类的属性
print(p.a_type)

2.重构父类中的方法
class Animal:
def __init__(self,name,age,sex):
self.name = name
self.age = age
self.sex = sex def eat(self):
print('{}正在吃东西~'.format(self.name))
# 继承(Animal)类
class Person(Animal):
def talk(self):
print('独有的方法!')
# 重写父类的方法
def eat(self):
print('人在吃饭')
# 子类和父类的方法重名,此时则执行子类中的方法,不执行父类中的方法
p = Person('yhf',23,'女')
p.eat()

属性的重构:
class Animal:
a_type = '动物'
def __init__(self,name,age,sex):
self.name = name
self.age = age
self.sex = sex def eat(self):
print('{}正在吃东西~'.format(self.name))
# 继承(Animal)类
class Person(Animal):
a_type = '高级动物'
def talk(self):
print('独有的方法!') p = Person('yhf',23,'女')
# 子类和父类的属性重名,此时按照子类的属性,不按父类的属性
print(p.a_type)

不完全重构(先执行子类的方法,在执行父类的方法)
class Animal:
def __init__(self,name,age,sex):
self.name = name
self.age = age
self.sex = sex def eat(self):
print('{}正在吃东西~'.format(self.name))
# 继承(Animal)类
class Person(Animal):
def talk(self):
print('独有的方法!')
# 重写父类的方法
def eat(self):
Animal.eat(self) #在子类方法中调用父类方法中的重名方法,可以实现父类和子类中的同名方法都执行
print('人在吃饭') p = Person('yhf',23,'女')
p.eat()

执行父类的构造方法:
class Animal:
def __init__(self,name,age,sex):
self.name = name
self.age = age
self.sex = sex def eat(self):
print('{}正在吃东西~'.format(self.name))
# 继承(Animal)类
class Person(Animal):
# 在子类的构造函数中调用父类的构造函数,同时执行子类和父类的构造方法
def __init__(self,name,age,sex,efv):
Animal.__init__(self,name,age,sex)
self.efv = efv p = Person('wdc','','男',2019)
print(p.name,p.sex,p.age,p.efv)

super方法:效果同上
class Animal:
def __init__(self,name,age,sex):
self.name = name
self.age = age
self.sex = sex def eat(self):
print('{}正在吃东西~'.format(self.name))
# 继承(Animal)类
class Person(Animal):
# 在子类的构造函数中调用父类的构造函数,同时执行子类和父类的构造方法
def __init__(self,name,age,sex,efv):
# super方法:super(子类名,self).__init__(参数)或者super().__init__(属性)
# super(Person,self).__init__(name,age,sex)
super().__init__(name, age, sex)
self.efv = efv p = Person('wdc','','男',2019)
print(p.name,p.sex,p.age,p.efv)
python_面向对象——继承的更多相关文章
- OC面向对象—继承
OC面向对象—继承 一.基本概念 程序的世界和人类的“对象”世界在思想上是没有设么区别的,富二代继承了父母,自然就拥有了父母拥有的所有资源,子类继承了父类同样就拥有了父类所有的方法和属性(成员变量). ...
- 面向对象继承实例(a如何继承b)
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...
- js面向对象继承
前言 最近看到js面向对象这章节了,主要学习了原型和面向对象继承关系,为了梳理自己的知识逻辑,特此记录. js的面向对象 先说说我目前了解的js创建对象方法 1.写一个函数,然后通过new创建对象 2 ...
- Php面向对象 – 继承和重写
Php面向对象 – 继承和重写 承受: php于,通过类.使用特殊的经营宗旨. 通过定义类,采用extends来表示当前的类对象继承该类的对象. 样例: class C { public $p_c ...
- Java面向对象 继承(下)
Java面向对象 继承(下) 知识概要: (1)抽象类 1.1 抽象类概述 1.2 抽象类的特点 ...
- Java面向对象 继承(上)
Java面向对象 继承 知识概要: (1)继承的概述 (2)继承的特点 (3)super关键字 (4)函数覆盖 (5) 子类的实例化过程 (6) final关键字 (1)继承 ...
- js高级-面向对象继承
一.工厂模式创建对象及优缺点 继承就是把公共的部分抽象出来作为父类,基类.吃饭,跑步等 var a = {}; //批量创建不方便,不能重复设置公共属性的代码 //工厂模式出现了,创建10个Cat对象 ...
- 面向对象 继承 抽象类 接口 static 权限修饰符
Day01 面向对象 继承 抽象类 接口 static 1.匿名对象是指创建对象时,只有创建对象的语句,却没有把对象地址值赋值给某个变量. 2.类的继承是指在一个现有类的基础上去构建一个新的类,构建出 ...
- Python之面向对象继承和派生
Python之面向对象继承和派生 什么是继承: 继承是一种创建新的类的方法.在Python中,新建的类可以继承自一个或多个父类.原始类称为基类或超类. 新建的类称为派生类或子类. Python中类的继 ...
随机推荐
- Win10下 jdk的安装
jdk 的下载地址 https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 在 D 盘 ...
- Redis部分
- Django入门(上)
一.Web应用程序 1.web应用程序介绍 Web应用程序是一种可以通过Web访问的应用程序,程序的最大好处是用户很容易访问应用程序,用户只需要有浏览器即可,不需要再安装其他软件. 应用程序有两种模式 ...
- 处理bugs心法
1. 前提 第一层:遇到异常首先必须告诉自己,冷静,不要慌.(一看到Bug就心慌,那么武功就施展不了了) 2. 入门级 第二层:遇到Bug,第一潜意识看输出异常的信息的(控制台输出,Junit输出,页 ...
- asp.net core-13.Cookie-based认证实现
1.打开visual studio code创建一个MVC项目
- (十六)客户端验证与struts2中的服务器端验证
一.客户端验证: 即用javaScript来验证. <%@ page language="java" contentType="text/html; charset ...
- HTTP协议探究(六):H2帧详解和HTTP优化
一 复习与目标 1 复习 HTTP1.1存在的问题 HTTP2.0要兼容HTTP1.1 HTTP2.0的重要概念 分帧层 二进制:流 消息 帧 流的状态.优先级和并发 流量控制 服务器推送 首部压缩 ...
- SSRF(服务端请求伪造)
- springboot启动流程(六)ioc容器刷新前prepareContext
所有文章 https://www.cnblogs.com/lay2017/p/11478237.html prepareContext方法核心逻辑 上一篇文章中,我们通过createApplicati ...
- Mac上搭建Web服务器--Apache
局域网搭建 Web 服务器测试环境,因为Mac OS X 自带了 Apache 和 PHP 环境,我们只需要简单的启动它就行了. 1.命令:sudo apachectl start Apache服务器 ...