Objeet Oriented Python
Tutorial0 码力 | 111 页 | 3.32 MB | 2 年前3
Go 2 Generics? A (P)review- 上手时间 - 历史性评述 - 展望 ## 泛型的起源 Origin of Generics 多态是同一形式表现出不同行为的一种特性。在编程语言理论中被分为两类: 临时性多态(Ad hoc Polymorphism)根据实参类型调用对应的版本,仅支持数量有限的调用。也被翻译为特设多态。例如:函数重载 func Add(a, b int) int { return a + b } func Add(1, 2) // 调用第一个 Add(1.0, 2.0) // 调用第二个 Add("1", "2") // 编译时不检查,运行时找不到实现,崩溃 参数化多态(Parametric Polymorphism)根据实参类型生成不同的版本,支持任意数量的调用。即泛型 func Add(a, b T) T{ return a+b } Add(1, 2) // p37_1.jpg) ## Conclusions 回顾来看,Go 2 中基于合约的泛型设计,是可以理解的,经过多次迭代、吸取了诸多决策失误的经验 ☐ 目前的实现粗略的说是一种基于特设多态实现的参数化多态 ● 目前的实现相对完整,但存在一些功能性的缺失,但更像是有意为之(语言更加复杂) • 还存在非常多可改进的空间 ● 会像 try proposal 一样被废弃吗?个人看法:形势还不够0 码力 | 41 页 | 770.62 KB | 2 年前3
1.2.3 Go 泛型设计Languages》提出了两个概念: 特设多态(ad-hoc): void print(string s) {} void print(int i) {} 参数化多态(Parametric): templateT Add(T a, T b) { return a + b; } 子类型多态,行多态…: ’ alt=‘OCR图片’/>0 码力 | 35 页 | 1.31 MB | 1 月前3
Java 应用与开发 - 面向对象编程进阶## 学习目标 1. 理解多态和虚方法调用的概念,掌握其用法 2. 掌握方法重载的方法 3. 掌握 static 属性、方法和初始化块的用法 4. 了解设计模式,掌握单例设计模式 5. 掌握 final 关键字的概念和使用方法 |大纲|多态性|方法重载|关键字 static|关键字 final| |---|---|---|---|---| |大纲||||| |多态性||||| |方法重载||||| final|||||
## 什么是多态? 在 Java 中,子类的对象可以替代父类的对象使用称为多态。 Java 引用变量与所引用对象间的类型匹配关系 ▶ 一个对象只能属于一种确定的数据类型,该类型自对象创建直至销毁不能改变。 一个引用类型变量可能引用(指向)大纲 多态性 方法重载 关键字 static 关键字 final 接下来… 多态性 方法重载 关键字 static 关键字 final 0 码力 | 49 页 | 659.74 KB | 2 年前3
C++高性能并行编程与优化 - 课件 - Zeno 中的现代 C++ 最佳实践 PrimitiveNoiseAttr. [▶]PrimitiveNormal. PrimitiveObiIO.cpp ## 多态的经典案例 - IObject 具有一个 eatFood 纯虚函数,而 CatObject 和 DogObject 继承自 IObject,他们实现了 eatFood 这个虚函数,实现了多态。 - 注意这里解构函数(~IObject)也需要是虚函数,否则以 IObject * 存储的指针在 存储的指针在 delete 时只会释放 IObject 里的成员,而不会释放 CatObject 里的成员 string m_catFood。所以这里的解构函数也是多态的,他根据类型的不同调用不同派生类的解构函数。 struct IObject { IObject() = default; IObject(IObject const &) = default; IObject m_dogFood = "meatBones"; } virtual ~DogObject() override = default; }; ## 多态用于设计模式之“模板模式” - 这样之后如果有一个任务是要基于 eatFood 做文章,比如要重复 eatFood 两遍。 - 就可以封装到一个函数 eatTwice 里,这个函数只需接受他们共同的基类0 码力 | 54 页 | 3.94 MB | 2 年前3
《Java 应用与开发》课程讲义 - 王晓东4.4 关键字 this ..... 43 4.5 课后习题 ..... 45 5 Java 面向对象编程进阶 B ..... 46 5.1 多态性 ..... 47 5.1.1 多态的概念 ..... 47 5.1.2 多态用法示例 ..... 48 5.1.3 虚方法调用 ..... 49 5.1.4 对象造型 ..... 49 5.1.5 instanceof 和 C 语言数数组 …… 24 4.1 Java 包 …… 32 4.2 Java 包 …… 36 4.3 Java 访问控制 …… 37 5.1 Java 多态 …… 47 6.1 Java 虚拟机架构 …… 59 6.2 JVM 内存模型 …… 60 7.1 接口实现示例 …… 74 9.1 IBM 1401 …… ## 教学目标 1. 理解多态和虚方法调用的概念,掌握其用法 2. 掌握方法重载的方法 3. 掌握 static 属性、方法和初始化块的用法 4. 了解设计模式,掌握单例设计模式 5. 掌握 final 关键字的概念和使用方法 ## 授课方式 理论课:多媒体教学、程序演示 实验课:上机编程 ## 教学内容 ### 5.1 多态性 #### 5.1.1 多态的概念 在 Java 中0 码力 | 330 页 | 6.54 MB | 2 年前3
Greenplum 分布式数据库内核揭秘c12d71f5166507cf7747cf0d9/p1_1.jpg) ## Agenda - Greenplum 分布式数据库简介 - Greenplum 集群化概述 - 分布式数据存储与多态存储 - 分布式查询优化器与执行器 - Greenplum 中文社区  ## 数据分布策略 Greenplum ('M'), DEFAULT PARTITION others); vmware $ ^{®} $ Confidential | ©2021 VMware, Inc. ## 多态存储 Greenplum 支持多态存储,即单张用户表,可以根据访问模式的不同而使用不同的存储方式存储不同的分区。例如根据数据的新、旧程度决定将数据存储至本地硬盘还是以外部表的方式存储在 HDFS 或者是 S3 中。Greenplum0 码力 | 31 页 | 3.95 MB | 2 年前3
A Brief Immersion - 傅若愚▶ [∀ + Click] -> [∀ + Click] $$ var result=someArray $$ ## TYPE SYSTEMS ## 动态多态 -> 静态多态 以前经常使用继承来实现的多态,现在不到万不得已,不会用到继承,而会优先考虑Protocol + Generics NSProxy is gone -_-! No more method swizzling renderText(name, " $ age $ ") context.renderImage(avatar) } } ## EXAMPLE 在OC中通过弱类型+多态表示JSON非常容易:对于一个id来说,我们可以发任意方法的消息给它。(虽然会Crash)而在Swift中呢? enum JSON{ case JArray([JSON]) case0 码力 | 40 页 | 3.39 MB | 2 年前3
Java 应用与开发 - 异常处理在没有找到适合的异常处理代码时,系统也会自动调用该方法输出错误信息。 ## 捕获和处理 IOException ## ✿ 一些知识点 ▶ 异常类型的多态性 FileNotFoundException 是 IOException 的子类,基于多态性机制,后一个 catch 语句也可以处理 FileNotFoundException,因此前一个 catch 语句块可以取消,但这样就无法区分 “文件不存在” ▶ 过度处理 课程配套代码 ☑ sample.exception.IOExceptionSample.java ## 捕获和处理 IOException ## ✿ 一些知识点 ▶ 异常类型的多态性 ▶ 运行时异常 对于只可能产生 RuntimeException 的代码可以不使用 try-catch 语句进行处理,如果对于这些相对安全的代码仍然采用了 try 语句块的形式,则 try 后可以省略 ▶ 过度处理 课程配套代码 ▶ sample.exception.IOExceptionSample.java ## 捕获和处理 IOException ## ✿ 一些知识点 ▶ 异常类型的多态性 ▶ 运行时异常 ▶ 过度处理 如果试图捕获和处理代码中根本不可能出现的异常,编译器也会指出这种不当行为。 课程配套代码 ▶ sample.exception.IOExceptionSample0 码力 | 33 页 | 626.40 KB | 2 年前3
Laravel 5.1 中文文档有很多评论,或者一个订单会被关联到下单用户,Eloquent 使得组织和处理这些关联关系变得简单,并且支持多种不同类型的关联关系: 一对一 - 一对多 - 多对多 - 远层多对多 - 多态关联 - 多对多的多态关联 ## 2、 定义关联关系 Eloquent 关联关系以 Eloquent 模型类方法的形式被定义。和 Eloquent 模型本身一样,关联关系也是强大的查询构建器,定义关联关系为 'App\User', 'country_id', 'user_id'); } } ### 2.5 多态关联 #### 2.5.1 表结构 多态关联允许一个模型在单个关联下属于多个不同模型。例如,假如你想要为产品和职工存储照片,使用多态关联,你可以在这两种场景下使用单个 photos 表,首先,让我们看看构建这种关联关系需要的表结构: staff id - #### 2.5.3 获取多态关联 数据表和模型定义好以后,可以通过模型访问关联关系。例如,要访问一个职员的所有照片,可以通过使用 photos 的动态属性: $staff = App\Staff::find(1); foreach ($staff->photos as $photo) { // } 你还可以通过访问调用 morphTo 方法名来从多态模型中获取多态关联的所属对象。在本例中,就是0 码力 | 307 页 | 3.46 MB | 2 年前3
共 75 条
- 1
- 2
- 3
- 4
- 5
- 6
- 8













