当前位置: 首页 > news >正文

微网站怎么搭建网站架设建设

微网站怎么搭建,网站架设建设,做网站用什么编程,网站推广的目的是什么简介 在面向对象编程中,重载(overloading)和重写(overriding)是两个不同的概念。 重载(Overloading)的定义 重载是同一个类中定义多个同名方法,但是这些方法具有不同的参数列表(参数个数、参数类型或参数顺序不同)。 当调用这个方法时,编译器会根据实际传入的参数自动选择对…

简介

在面向对象编程中,重载(overloading)和重写(overriding)是两个不同的概念。

重载(Overloading)的定义

重载是同一个类中定义多个同名方法,但是这些方法具有不同的参数列表(参数个数、参数类型或参数顺序不同)。
当调用这个方法时,编译器会根据实际传入的参数自动选择对应的方法实现。

重写(Overriding)的定义

重写是子类中定义一个与父类中方法名称、返回值类型和参数列表完全相同的方法。
当通过子类的对象调用这个方法时,会执行子类中重写的方法实现,覆盖父类中的实现。

区别

定义位置

重载发生在同一个类中,即一个类里面定义多个同名方法。
重写发生在父类和子类之间,即子类重新定义父类中的方法。

参数列表

重载要求方法参数列表不同(参数个数、参数类型或参数顺序不同)。
重写要求方法参数列表完全相同。

调用机制

重载是编译时确定调用哪个方法,根据实际传入的参数类型。
重写是运行时确定调用哪个方法,取决于通过哪个对象来调用方法。

多态性

重载体现的是编译时多态,即同一个方法名称根据参数而表现不同的行为。
重写体现的是运行时多态,即子类对象调用重写后的方法而表现出不同的行为。

重载(Overloading)的应用场景

操作符重载

在类中重载常见的操作符,如 +、-、*、/ 等,使得自定义对象可以使用这些运算符。
例如在自定义的 Vector 类中重载 + 和 * 运算符,实现向量的加法和标量乘法。

构造函数重载

在类中定义多个构造函数,根据传入的参数不同执行不同的初始化操作。
例如 Person 类可以有一个只需要名字的构造函数,也可以有一个需要名字和年龄的构造函数。

方法重载

在类中定义多个同名方法,但是参数列表不同。
例如 print() 函数在 Python 中就是一个常见的重载方法,可以接受不同数量和类型的参数。

重写(Overriding)的应用场景

继承和多态

在子类中重写父类的方法,实现多态行为。
例如 Animal 类有一个 make_sound() 方法,Dog 和 Cat 子类各自重写这个方法以体现不同的叫声。

钩子方法(Hook Methods)

在父类中定义一些空方法或默认实现,让子类可以根据需要进行重写。
例如在 Django 的 View 类中有许多钩子方法,如 get()、post()、put() 等,子类可以根据需要进行重写。

框架和库的扩展

当使用第三方框架或库时,可以通过重写某些方法来扩展或定制框架/库的功能。
例如在 Flask 中,可以重写 create_app() 方法来自定义应用程序的创建过程。

简单实例

重载(Overloading)的实例

假设我们有一个 Vector2D 类,用于表示二维向量。我们可以对常见的数学运算符进行重载,使得向量之间的运算更加直观:

class Vector2D:def __init__(self, x, y):self.x = xself.y = ydef __add__(self, other):return Vector2D(self.x + other.x, self.y + other.y)def __sub__(self, other):return Vector2D(self.x - other.x, self.y - other.y)def __mul__(self, scalar):return Vector2D(self.x * scalar, self.y * scalar)# 其他重载方法,如 __str__、__len__ 等

这样我们就可以像下面这样使用向量对象:

v1 = Vector2D(1, 2)
v2 = Vector2D(3, 4)
v3 = v1 + v2
print(v3.x, v3.y)  # Output: 4 6

重写(Overriding)的实例

假设我们有一个 Animal 基类,定义了一个 make_sound() 方法。我们可以创建 Dog 和 Cat 子类,并重写 make_sound() 方法以体现不同的叫声:

class Animal:def make_sound(self):print("The animal makes a sound")class Dog(Animal):def make_sound(self):print("Woof!")class Cat(Animal):def make_sound(self):print("Meow!")# 调用
dog = Dog()
cat = Cat()
dog.make_sound()  # Output: Woof!
cat.make_sound()  # Output: Meow!
http://www.yayakq.cn/news/834690/

相关文章:

  • 去迪拜网站做乞丐网站建设自学
  • 重庆的网站建设公司网站开发需要多久
  • 网站 后台 数据 下载网站开发常见毕业设计题目
  • 网站建设行业地位yy直播下载电脑版
  • 商务 服务类网站模板企业网站无线端怎么做
  • 网站开发方向c语言做图软件ps下载网站有哪些
  • 网站被host重定向处理学生个人网页制作代码
  • 天津市做公司网站的公司网站需要备案才能建设吗
  • 佛山市网站建设分站哪家好郑州建网站
  • vs python 网站开发怎样克隆别人的网站
  • 宜春做网站的公司哪家好广州教育平台登录入口
  • 网站设计前景如何在电脑上做网站
  • 游戏设计 网站有哪些做买家秀的网站
  • 怎么做个人网站织梦网站后台地址
  • 做韩国网站有哪些东西吗免费logo在线制作字体logo
  • 吕梁市住房与城乡建设厅网站电子商务网站建设的概要设计
  • 做动物网站的原因自己怎么建网站卖东西
  • 网站里面的图片做桌面不清晰学校网站设计流程
  • 郑州公司网站建设哪家好网站设置怎么删除
  • 爱网站网站查询网站开发与技术分析
  • 柳州住房城乡建设厅官方网站百度竞价广告投放
  • 企业手机网站建设平台博物馆网站建设情况说明
  • 免费拿项目做的网站东莞高端品牌网站建设
  • 2018企业网站优化应该怎么做网站h1标签怎么做
  • 企业网站自助建站上海东莞常平学校网站建设
  • 如何申请个人网站wordpress 红色模版
  • 开发网站五个阶段手机优化怎么得100分
  • 织梦做企业网站教程php mysql做网站
  • 鸿运通网站建设手表网站哪家好
  • 云服务器网站建站国外做彩票网站违法吗